第三周第三次课 (4月4号笔记)

时间:2022-06-01 14:23:17

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

密码和秘钥远程登录都会受限

补充:

sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。
sudo -i 直接运行sudo命令加-i参数
sudo su 运行sudo命令给su命令提权,运行su命令。
sudo -i 运行结果 PWD=/root
sudo su 运行结果 PWD=/home/用户名(当前用户主目录)