linux下添加用户到sudo组 并禁止sudo用户修改密码
linux下添加用户到sudo组
创建用户 useradd hanli
为新用户设置密码 passwd hanli
创建用户组 groupadd op
将用户添加到用户组 usermod -G op hanli
查看用户属于哪个组 groups hanli
查看用户组成员 groupmems -g wheel -l (wheel是组名)
查看所有用户组 cat /etc/group cat /etc/gshadow
查看所有用户 cat /etc/passwd cat /etc/shadow
给普通用户添加sudo权限,并且使用时不用输入密码:
直接键入命令visudo(这是Linux提供的修改sudoer的工具,与用vi亲自修改配置文件相比,它提示更多的提示信息的纠错能力), 或者vi /etc/sudoers ,添加如下一行
hanli ALL=(ALL) NOPASSWD: ALL
jorge ALL=(root) /usr/bin/find, /bin/rm
上面的第一栏规定它的适用对象:用户或组,就本例来说,它是用户jorge。此外,因为系统中的组和用户可以重名,要想指定该规则的适用对象是组而非用户的话,组对象的名称一定要用百分号%开头。第二栏指定该规则的适用主机。当我们在多个系统之间部署sudo环境时,这一栏格外有用,这里的ALL代表所有主机。但是,对于桌面系统或不想将sudo部署到多个系统的情况,这一栏就换成相应的主机名。第三栏的值放在括号内,指出第一栏规定的用户能够以何种身份来执行命令。本例中该值设为root,这意味着用户jorge能够以root用户的身份来运行后面列出的命令。该值也可以设成通配符ALL,jorge便能作为系统中的任何用户来执行列出的命令了。最后一栏(即/usr/bin/find,/bin/rm)是使用逗号分开的命令表,这些命令能被第一栏规定的用户以第三栏指出的身份来运行它们。本例中,该配置允许jorge作为超级用户运行/usr/bin/find和 /bin/rm这两个命令。如果配置该用户不能执行某些命令,在命令前加”!”即可,需要指出的是,这里列出的命令一定要使用绝对路径。
如何禁止sudo用户修改密码
root新建用户:
useradd user
passwd user
root 用户在 sudoers文件中添加:
user ALL=/usr/sbin/*,/sbin/*,/usr/bin/*,!/bin/chattr,!/bin/passwd,!/usr/sbin/visudo,!/usr/sbin/useradd,!/usr/sbin/userdel
所有sudo开个头的文件或文件夹添加i属性(不得任意更动文件或目录):
chattr +i /etc/sudo.conf
chattr +i /etc/sudoers
chattr +i /etc/sudoers.d/
chattr +i /etc/sudo-ldap.conf
解锁文件
chattr -i /etc/sudo.conf
chattr -i /etc/sudoers
chattr -i /etc/sudoers.d/
chattr -i /etc/sudo-ldap.conf