linuxetc文件的权限,Linux用户权限规范etcsudoers文件解释
linuxetc⽂件的权限,Linux⽤户权限规范etcsudoers⽂件解释#User privilege specification
祝大家双节快乐
root ALL=(ALL) ALL#Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
个⼈总结:
上⾯ root 表⽰⽤户、%admin 表⽰ admin ⽤户组(%+名表⽰给⽤户组设置权限)
第⼀个ALL:多个系统之间部署 sudo 环境时,该ALL代表所有主机。也可以换成相应的主机名,表⽰改规则只适⽤主机名对应的系统
第⼆个ALL(即括号内的):指出规定的 user ⽤户能够以何种⾝份来执⾏命令。该ALL表⽰user⽤户能够以任何⽤户的⾝份执⾏命令
第三个ALL:表⽰能执⾏"命令表",ALL表⽰⽤户能够执⾏系统中的所有命令。
举例:
如果要在主机名为 ops-test 的系统下的⽤户 test 添加 sudo 权限
中国移动沈阳分公司
不知道主机名要不要加引号,仅供参考!
test ops-test=(root)ALL
以下来⾃百度百科:
sudo⽤户配置
下⾯对以上配置做简要说明:
第⼀项配置的作⽤,是允许root⽤户使⽤sudo命令变成系统中任何其它类型的⽤户。
第⼆个配置规定,admin组中的所有成员都能以root的⾝份执⾏所有命令。因此,在默认安装的Ubuntu系统中,要想作为root⾝份来执⾏命令的话,只要在sudo后⾯跟上欲执⾏的命令即可。
我们⽤⼀个实例来详细解释/etc/sudoers⽂件的配置语法,请看下⾯的例⼦:
jorge ALL=(root) /usr/bin/find, /bin/rm
上⾯的第⼀栏规定它的适⽤对象:⽤户或组,就本例来说,它是⽤户jorge。
此外,因为系统中的组和⽤户可以重名,要想指定该规则的适⽤对象是组⽽⾮⽤户的话,组对象的名称⼀定要⽤
百分号%开头。
第⼆栏指定该规则的适⽤
主机。当我们在多个系统之间部署 sudo 环境时,这⼀栏格外有⽤,这⾥的 ALL 代表所有主机。
但是,对于桌⾯系统或不想将sudo部署到多个系统的情况,这⼀栏就换成相应的
主机名。
或者也可以设置为 localhost 表⽰规则仅适⽤本主机。
jorge localhost=(root) /usr/bin/find, /bin/rm
第三栏的值放在括号内,指出第⼀栏规定的⽤户能够以何种⾝份来执⾏命令。本例中该值设为root,这意味着⽤户jorge能够以root⽤户的⾝份来运⾏后⾯列出的命令。
该值也可以设成
通配符ALL,jorge便能作为系统中的任何⽤户来执⾏列出的命令了。
最后⼀栏(即/usr/bin/find,/bin/rm)是使⽤逗号分开的命令表,这些命令能被第⼀栏规定的⽤户以第三栏指出的⾝份来运⾏它们。本例中,该配置允许jorge作为
超级⽤户运⾏/usr/bin/find和 /bin/rm这两个命令。需要指出的是,这⾥列出的命令⼀定要使⽤绝对路径。
进⼀步:
我们可以利⽤这些规则为系统创建具体的⾓⾊。例如,要让⼀个组负责帐户管理,你⼀⽅⾯不想让这些⽤户具备完全的root访问权限,另⼀⽅⾯还得让他们具有增加和删除⽤户的权利,那么我们可以在系统上创建⼀个名为accounts的组,然后把那些⽤户添加到这个组⾥。
之后,再使⽤visudo为/etc/sudoers添加下列内容: %accounts ALL=(root) /usr/sbin/useradd,/usr/sbin/userdel, /usr/sbin/草原歌曲专辑
命运不是辘轳usermod
现在好了,accounts组中的任何成员都能运⾏useradd、userdel和usermod命令了。如果过⼀段时间后,您发现该⾓⾊还需要其他⼯具,只要在该表的尾部将其添上就⾏了。这样真是⽅便极了!
需要注意的是,当我们为⽤户定义可以运⾏的命令时,必须使⽤完整的命令路径。
这样做是完全出于安全的考虑,
故乡 许巍
如果我们给出的命令只是简单的userad⽽⾮/usr/sbin/useradd,那么⽤户有可能创建⼀个他⾃⼰的脚本,也叫做useradd,然后放在它的本地路径中,如此⼀来他就能够通过这个名为useradd的本地脚本,作为root来执⾏任何他想要的命令了。这是相当危险的!
sudo命令的另⼀个便捷的功能,是它能够指出哪些命令在执⾏时不需要输⼊密码。
这很有⽤,尤其是在⾮交互式脚本中以
我这一生漂泊四海看淡了今朝超级⽤户的⾝份来运⾏某些命令的时候。
例如,想要让⽤户作为超级⽤户不必输⼊密码就能执⾏kill命令,以便⽤户能⽴刻杀死⼀个失控的进程。为此,在命令⾏前边加上NOPASSWD:属性即可。例如,可以在/etc/sudoers⽂件中加上下⾯⼀⾏,从⽽让jorge获得这种权⼒:
jorge ALL=(root)NOPASSWD: /bin/kill, /usr/bin/killall
这样⼀来,jorge就能运⾏以下命令,作为root⽤户来杀死失控的rm进程了。
jorge@ubuntu:~$ sudo killall rm

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。