3.7 su命令
3.8 sudo命令
3.9 限制root远程登录
3.7 su命令
su - username切换用户 (在自己的家目录下) -username无空格依然在root用户下
id命令查看当前用户详情
su - -c "" (在不进入某用户的情况下,执行命令, -为切换) e.g. su - -c“touch /tmp/liut.111”liut(username)
ls -lt /tmp/ |head : 显示 /tmp/ 下前十行
如果使用了 useradd -M 命令: 用户家目录不创建,这时候username虽然创建,但无法使用su - username,会报错(因为默认切换到该用户家目录,而实际上不存在)
恢复正常操作创建即可: id username 看uid/gid,以user5为例
①创建家目录 : mkdir /home/user5
②更改所属组和所有者 chown -R user5:user5 /home/user5/ (无配置文件,无法正常显示)
③ls /etc/skel/ 把.bash文件都copy到user5下即可
cp /etc/skel/.bash* /home/user5/ 并更改所属组和所有者 chown -R user5:user5 !$
3.8 sudo命令
sudo (指定用户的身份) 通常情况下给普通用户root的身份
visudo (可检错) :set nu 查看文件行数
##Allow root to run any commands anywhere
root ALL=(ALL)用户 ALL
liut ALL=(ALL) ALL/ls, mv, cat (用法错误,必须写绝对路径) e.g. /usr/bin/ls; /usr/bin/mv; /usr/bin/cat
通常情况下普通用户无法查看root目录下的文件,(除添加set_uid/gid权限外)
e.g. 给之前加过权限的命令ls减掉,执行 chmod u-s /bin/ls chmod g-s /bin/ls还原
(排查某命令权限时可执行以ls为例 ls -l /usr/bin/ls,如果有s权限,则在非root用户下也可以查看/root下的文件)
此时再在普通用户下执行ls /root/发现权限不够
执行 sudo /usr/bin/ls /root 弹出输入当前普通用户密码窗口,输入即可在普通用户模式下访问root用户下的文件
root ALL=(ALL)用户 ALL
liut ALL=(ALL) ALL/ls, mv, cat (用法错误,必须写绝对路径) e.g. /usr/bin/ls; /usr/bin/mv; /usr/bin/cat
user5 ALL=(ALL) NOPASSWD: ALL/ls, mv, cat (用法错误,必须写绝对路径) e.g. /usr/bin/ls; /usr/bin/mv; /usr/bin/cat
NOPASSWD: 可让用户无需输入密码
Host Alias/ User Alias/ Cmnd_Alias 把实际的alias归类 e.g. Cmnd_Alias CMD= /usr/bin/ls, /usr/bin/mv, /usr/bin/cat 可直接代替ALL中的命令
%wheel 对组限制(可先把多个用户加到同一个用户组中)
3.9 限制root远程登录
*处于安全考虑,限制root的远程登录
sudo su -可以获得root权限,把用户组加入到/etc/sudoers配置文件中,普通用户也可以获得root用户权限,否则会发出警告:
设定用户组集: ①visudo
②User_Alias LIUTS= liut, user5, user6
③LIUTS ALL=(ALL) NOPASSWD: /usr/bin/su
④su - liut
⑤sudo su - (直接跳到root用户模式下)
限制root远程登录
vi /etc/ssh/sshd_config “i”进入编辑模式 /Root 找到 PermitRootlogin 去掉# 并改成no
重启服务 systemctl restart sshd.service
密码和秘钥远程登录都会受限