服务器端
修改配置文件
/etc/rsyslog.conf中
$ModLoad imudp
$UDPServerRun 514
打开日志服务监听
修改/etc/sysconfig/rsyslog文件
SYSLOGD_OPTIONS="-m240 -r"
其中-r表示接受外部日志写入
防火墙开启端口
firewall-cmd --zone=public --add-port=514/udp
重启服务
systemctl restart rsyslog
客户端配置
修改配置文件/etc/rsyslog.conf
只需要把尾部.@@remote-host:514注释取消,并把两个@符号改为一个@符号,remote-host替换为服务器IP即可。
注:如使用TCP协议,使用@@则表示TCP协议。
重启服务
systemctl restart rsyslog
测试
使用logger命令发送日志进行测试
logger -p user.info "teststr"
在服务器端/var/log/message可看到以下内容
Feb 10 23:59:20 master root: teststr
su与sudo的区别
su
su是最简单的身份切换命令,它可以进行任何身份的切换。
单纯使用su切换成为root的身份,读取的变量设置方式为非登录shell的方式,这种方式很多原本的变量不会被修改,尤其是PATH这个变量。由于没有修改成为root的环境,因此很多root常用的命令就只能使用绝对路径来执行。所以切换身份时务必使用su -。
- 若要完整地切换到新用户的环境,必须使用su - username或su -l username才会连同PATH、USER、MAIL等变量都转成新用户的环境。
- 如果仅想执行一次root的命令,可以使用su - -c "COMMAND"方式。
- 使用root切换成为其他用户时,并不需要输入新用户的密码。
- 使用su切换到root身份里,需要root的密码。
sudo
相对于su需要了解新用户的密码(通常是root的密码),sudo的执行则仅需要自己的密码即可。甚至可以设备不需要密码即可执行sudo。由于sudo可以让普通用户以其他用户的身份执行命令(通常是使用使用root的身份来执行命令),因此并非所有人都可以执行sudo,而是仅有规范到/etc/sudoers内的用户才能执行sudo命令。
sudo执行流程
- 当用户执行sudo时,系统于/etc/sudoers文件中查找该用户是否有执行sudo权限。
- 若用户具有可执行sudo的权限后,便让用户输入自己的密码来确认。
- 密码输入成功,便开始执行sudo后续接的命令(root执行sudo时,不需要密码。)
- 若欲切换的身份与执行者身份相同,也不需要输入密码。
sudo的执行重点是:能否使用sudo必须要看/etc/sudoers的设置,而可使用sudo者是通过输入用户自己的密码来执行后续的命令串。编辑sudoers文件有一定的规范,所以使用vi直接编辑是不好的,要通过visudo命令去修改这个文件。