sudoers文件配置详解(admin不在sudoers文件中)
本文目录一览:
- 1、Linux帐号管理详解
- 2、如何在Linux上安装与配置Hadoop-IT168 技术开发专区
- 3、linux终端用户执行不了命令,需要配sudo 怎么配置
- 4、linux命令求解
- 5、linux下面的sudo命令什么意思
Linux帐号管理详解
你的用户名:test
sudoers文件配置详解(admin不在sudoers文件中)
可以直接用下面的命令添加
echo
"test
ALL=(ALL)
NOPASSWD:
ALL"
>>/etc/sudoers
Linux环境下提升普通用户权限(sudo)
一. Linux环境下提升普通用户权限(sudo)
用sudo让普通用户获得超级用户的一部分权利,能够做超级用户才能做的事情,还能够对普通用户身份做一些限制,指定某一个或某几个人来做,并且普通用户不需要知道超级用户的密码,就能够完成超级用户才能完成的任务。
环境:root和普通用户redhat
1. 授权之前测试:
# /etc/init.d/d restart root执行
Stopping d: [ OK ]
Starting d: [ OK ]
$ /etc/init.d/d restart redhat执行
rm: cannot remove `/var/run/d.pid': Permission denied [FAILED]
Starting d:
touch: cannot touch `/var/lock/subsys/d': Permission denied
可以看出redhat用户执行d脚本重启的时候,被拒绝。
2. 超级用户为普通用户授权,让redhat可以做这件事情。
让redhat这个用户使用sudo调用这个脚本并且执行。
$ sudo /etc/init.d/d resart 为授权之前用sudo
We trust you he received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
redhat is not in the sudoers file. This incident will be reported.
可以看出,由于redhat用户还没有被超级用户授权,所以会出现这样的错误,就算输如root用户密码也是不行的,因为在sudoers文件里没有给予权利。
3. root用户修改 /etc/目录下的sudoers文件。
root用户可以手工修改/etc目录下的sudoers,这个文件权限的默认值是4 4 0,其他用户无权访问。
(两种方法修改,种:chmod 660 /etc/shdoers 改成可以写的权限,然后用vi 编辑即可,改完之后在把权限改回去。第二种:用visudo, visudo会把这个文件保存到一个临时文件里面去,它不是真正的配置文件,改完后这个内容会保存在内存里,退出visudo后才会写进真正的sudoers文件。)
# ls -l /etc/sudoers
-r--r----- 1 root root 580 Oct 4 2004 /etc/sudoers
# visudo
在 root ALL=(ALL) ALL 下面添加一行:redhat ALL=(ALL) /etc/init.d/d 表示:redhat用户可以在任何主机上变成任何人去行/etc/init.d 目录下的d 脚本。
例如:
root ALL=(ALL) ALL
redhat ALL=(ALL) /etc/init.d/d
# more /etc/sudoers 确认一下有没有错误
4. 测试:redhat 执行/etc/init.d/d 脚本,让它重启,
$ sudo /etc/init.d/d restart
Password: 此处输入的是redhat自己的密码
Stopping d: [ OK ]
Starting d: [ OK ]
可以看出经过root授权后,Redhat成功执行了该脚本。
按照这个规律,可以定义很多常见的一些命令给普通用户执行。
(2). 让redhat用户不用输入密码就能直接执行serv。
# visudo
redhat ALL=(ALL) NOPASSWD:/in/serv 表示用户不需要输密码
# more /etc/sudoers
测试:
$ sudo /in/serv iptables restart 重启防火墙,不需要输入密码。
(3). 让redhat用户在执行命令是必须输入密码。
# visudo
redhat ALL=(ALL) PASSWD:/in/serv 表示用户需要输如自己的密码
测试:
$ sudo /in/serv d restart
在输入密码5分钟之内,可以任意使用sudo,不用输密码,5分钟之后,在执行就需要输入密码。
用到的命令:
$ sudo -l 查看本人在这台主机上拥有那些权利
# man sudo 更多用法查看帮助
详解sudoers文件:
root ALL=(ALL) ALL 默认为root用户定义好的
可分成4个字段来理解:
个字段指定的是用户,可以是用户名,也可以是别名。
第二个字段指定的是用户所在的主机,可以是ip,也可以是主机名,限制的一般都是本机,也就是限制使用这个文件的主机,如果指定为:192.168.1.88= 表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的,一般都指定为:ALL 表示所有的主机,不管文件拷到那里都可以用。
第三个字段括号里指定的也是用户,比如说 (tom,redhat) 可以是一个或多个,ALL 表示所有用户。
第四个字段指定的是执行的命令。
例如:
root ALL=(ALL) ALL 表示:root用户可以在这台主机上以所有人的身份去执行所有命令。
redhat ALL=(lake) /bin/ls 表示:redhat用户可以在这台主机上变成lake身份去执行ls。
[redhat@localhost ~]$ sudo -u lake ls ~lake redhat以lake的身份查看lake的目录内容
我帮你搜的
sudo是linux系统管理指令,是允许系统让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
apt 是Linux下的一款安装包管理工具,是一个客户/系统。
sudo apt-get是用来安装linux下的各种工具包的。
扩展资料
sudo的特性主要有这样几点:
1、§ sudo能够限制用户只在某台主机上运行某些命令。
2、§ sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志。
3、§ sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
4、§ sudo的配置文件是sudoers文件,它允许系统集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
参考资料:
对于Linux管理者来说,“帐号管理”是再也普通不过的一个环节了,但每次都要去查一大本的手册实在是很浪费时间。我还是老老实实地花点心思把这些常用的功能都整理成一份文档,方便以后的使用和学习,以后也都会继续这样做下去。
本文的所有案例与说明都是基于Ubuntu 16.04.3 LTS 64位作系统,如果你的作系统与我的不一样,可能会出现不一样的结果。但Linux的原理都是通用的,善于使用man可以帮助你更好的管理你的作系统。
上图一共列出了9个相关文件,但这里我只重点讲解前三个文件,也即是 /etc/passwd、/etc/shadow 与 /etc/group。
1、/etc/passwd
User account rmation. --(明文的)用户账号信息
这个文件每一行都代表一个帐号,有几行就代表有几个帐号在你的系统中!不过需要特别注意的是,里面很多帐号本来就是系统正常运行所必须的,我们可以简称它为系统帐号。这些帐号都是你不能随便删除的!
通过查看passwd(5)手册可以查看/etc/passwd的文件结构:
文件结构说明:
“/etc/passwd” 第二项的内容说明
2、/etc/shadow
Secure user account rmation. -- 安全加密的用户账号信息
通过查看shadow(5)手册也可以查看/etc/shadow的文件结构:
如shadow(5)中所述,这个文件中被 “:” 分隔的每项含义如下。
3、/etc/group
Group account rmation. -- 组信息
通过查看group(5)手册也可以查看/etc/group的文件结构:
如group(5)中所述,这个文件中被“:”分隔的每项含义如下。
注意:
“/etc/gshadow” 为 “/etc/group” 提供了与 “/etc/shadow” 相似的功能,但没有被真正地使用。
4、/etc/gshadow
Secure group account rmation. -- 安全加密的组信息
5、/etc/default/useradd
Default values for account creation. -- 创建用户时的默认设置
6、/etc/skel/
Directory containing default files. -- 用户主目录的默认内容
7、/etc/subgid
Per user subordinate group IDs.
8、/etc/subuid
Per user subordinate user IDs.
9、/etc/login.defs
Shadow password suite configuration.
1、添加用户 -- useradd
useradd -- create a new user or update default new user rmation.
常用参数:
例1:最简单的例子
例2:创建一个可以使用的帐号
例3:查看useradd默认设置
使用useradd创建用户时还会参考文件/etc/login.defs的设置,比如UID/GID的指定数值、用户主文件夹设置值、用户删除与密码设置值等,这里也不做深入讨论了。
2、用户密码管理 -- passwd
passwd - change user password
常用参数:
3、用户密码管理 -- chage
chage - change user password expiry rmation
4、用户信息修改 -- usermod
usermod - modify a user account
当然,以上的修改你也可以通过手动修改相关的配置文件来达到一样的目的。
5、删除用户 -- userdel
userdel - delete a user account and related files
注意:
1)一般而言,该帐号如果只是暂时不启用的话,那么将/etc/shadow里面帐号失效日期(第八字段)设置为0就可以让该帐号无法登录,但所有相关的数据都会留下来。使用userdel的时候通常是你真的确定不要该用户在主机上面用任何数据了!
2)如果想要完整地将某个帐号删除,可以执行userdel -r username之前,先以“find / -user username”查出整个系统内属于username的文件,然后再进行删除。
1、初始用户组(initial group)与 有效用户组(effective group):
在/etc/passwd里面的第四列有一个所谓的GID,它就是“ 初始用户组 ”。也就是说,当用户登录系统,立刻就拥有这个用户组的相关权限的意思。
有效用户组:即帐号当前(实时)所使用的用户组。
次要用户组:次要用户组就是除了用户的初始用户组外的其它所属组,在/etc/group的一个字段中所设置,可以有多个(多个用逗号','隔开)。
使用usermod -g可以修改初始用户组,而使用usermod -G则可以修改次要用户组。
例1:修改用户次要用户组
例2:有效与支持用户组的查看
在这个输出的信息中,可知道nosee这个用户同时属于nosee及users这两个组,而且,个输出的即为“ 有效用户组 ”。也就是说,上面例子中的有效用户组为nosee。
2、有效用户组的切换 -- newgrp
上面例子中,nosee的有效用户组从nosee转变成了users。
现在我们来深入讨论下newgrp这个命令,这个命令可以更改目前用户的有效用户组,而且是另外以一个新的shell来提供这个功能。因此如果你想要回到原本的环境中,只需要输入exit即可。
3、新增用户组 -- groupadd
groupadd - create a new group
常用参数:
4、用户组参数修改 -- groupmod
groupmod - modify a group definition on the
常用参数:
注意:不要随意改动GID,容易造成系统资源的错乱。
5、删除用户组 -- groupdel
groupdel - delete a group
注意,只有在/etc/passwd内没有任何用户使用该用户组的作为初始用户组的时候,才可以成功删除。
6、用户组功能 -- gpasswd
gpasswd - administer /etc/group and /etc/gshadow
1)系统(root)的常用参数
2)用户组(Group administrators)的常用参数
1、su
su - change user ID or become superuser
su是最简单的身份切换命令了,它可以进行任何身份的切换。
常用参数:
注意:
1)这个su的用法当中,有没有加上“-”很多的,转为涉及login-shell与not-login shell的变量读取方法。即想要完整的切换到新用户的环境,可以利用“su - username”或“su -l username”。
2)使用root切换到任何用户时,都不需要输入密码
3)当从其它用户切换到root用户时都必须输入root的密码,这样root的密码就很容易流传出去,这是很不妥当的,所以才会有sudo这个命令的出现。
2、sudo
sudo, sudoedit — execute a command as another user
sudo的执行仅需要自己的密码,甚至可以设置不需要密码即可执行sudo。由于sudo可以让你以其他的用户身份执行命令(通常是root的身份),因此并不是所有人才能执行sudo,而是/etc/sudoers内的用户才能够执行sodu这个命令。
/etc/sudoers文件内容如下:
常用参数:
例:使用nosee的身份在/home/nosee/目录下新建一个test文件
sudo的执行流程:
1)当用户执行sudo时,系统于/etc/sudoers文件查找该用户是否有执行sudo的权限;
2)若用户具有可执行sudo的权限后,便让用户输入自己的密码来确认;
3)若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码);
4)若欲切换的用户与执行者身份相同,那也不需要输入密码。
因为/etc/sudoers文件有一定的规则,所以我们一帮不直接用vi去编辑。一般,我们都是使用visudo来修改这个文件。
3、visudo
因为/etc/sudoers是有语法的,如果设置错误那会造成无法使用sudo的不良后果,因此才会使用visudo去修改。
一般来说,visudo的设置方式有几种简单的方法,正面我们以几个简单的例子来说明:
1)单一用户可以进行root的所有命令与sudoer文件语法
例:让用户nosee可以使用root的所有命令
2)利用用户组及免密功能处理visudo
例:让nosee用户组可以使用root的所有命令,并且不需要输入密码
注意:用户组的表示只需要在前面加一个百分号%即可,NOPASSWD则是免密的关键字。
3)有限制的命令作
例:让user1用户仅能使用passwd这个命令帮root修改其他用户的密码
注意:一个参数一定要用路径才行,否则visudo会出现语法错误。
但这里有个可怕的地方,就是用户user1竟然也可以去修改root的密码了,这是不应该允许发生的,为了避免上述的问题,应该使用下面的这种配置:
上面参数的意思是,用户user1可以执行“passwd 任意字符串”,但是“passwd”与“passwd root”两个命令除外。
4)通过别名设置visudo
5)sudo的时间间隔问题
两次执行sudo的间隔时间在5分钟内,那么再次执行sudo时就不需要再次输入密码。
6)sudo搭配su的使用方式
很多时候我们需要大量执行很多root的工作,所以一直sudo觉得麻烦。这里有一个变身root用户的办法,而且还不会外泄root密码,前提是你要非常信任你将要为他们做此次设置的用户。
1、查看用户当前所用的shell
1)实时查看当前进程中使用的shell种类:
2)最常用的查看shell的命令,但不能实时反映当前shell
3)环境变量中shell的匹配查找
4)口令文件中shell的匹配查找
2、强制踢出已登录用户
或也可以给他发送一条信息。
3、adduser
adduser也可以用于用户的添加,感觉兴趣的同学可以自行去查阅相关的资料。
1、《鸟哥的Linux私房菜基础学习篇》-- 鸟哥
2、 Debian参考手册
如发现有写得不对或不好的地方非常欢迎到评论区指出与交流,感谢阅读!
——《完》
如何在Linux上安装与配置Hadoop-IT168 技术开发专区
你的用户名:test
可以直接用下面的命令添加
echo
"test
ALL=(ALL)
NOPASSWD:
ALL"
>>/etc/sudoers
Linux环境下提升普通用户权限(sudo)
一. Linux环境下提升普通用户权限(sudo)
用sudo让普通用户获得超级用户的一部分权利,能够做超级用户才能做的事情,还能够对普通用户身份做一些限制,指定某一个或某几个人来做,并且普通用户不需要知道超级用户的密码,就能够完成超级用户才能完成的任务。
环境:root和普通用户redhat
1. 授权之前测试:
# /etc/init.d/d restart root执行
Stopping d: [ OK ]
Starting d: [ OK ]
$ /etc/init.d/d restart redhat执行
rm: cannot remove `/var/run/d.pid': Permission denied [FAILED]
Starting d:
touch: cannot touch `/var/lock/subsys/d': Permission denied
可以看出redhat用户执行d脚本重启的时候,被拒绝。
2. 超级用户为普通用户授权,让redhat可以做这件事情。
让redhat这个用户使用sudo调用这个脚本并且执行。
$ sudo /etc/init.d/d resart 为授权之前用sudo
We trust you he received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
redhat is not in the sudoers file. This incident will be reported.
可以看出,由于redhat用户还没有被超级用户授权,所以会出现这样的错误,就算输如root用户密码也是不行的,因为在sudoers文件里没有给予权利。
3. root用户修改 /etc/目录下的sudoers文件。
root用户可以手工修改/etc目录下的sudoers,这个文件权限的默认值是4 4 0,其他用户无权访问。
(两种方法修改,种:chmod 660 /etc/shdoers 改成可以写的权限,然后用vi 编辑即可,改完之后在把权限改回去。第二种:用visudo, visudo会把这个文件保存到一个临时文件里面去,它不是真正的配置文件,改完后这个内容会保存在内存里,退出visudo后才会写进真正的sudoers文件。)
# ls -l /etc/sudoers
-r--r----- 1 root root 580 Oct 4 2004 /etc/sudoers
# visudo
在 root ALL=(ALL) ALL 下面添加一行:redhat ALL=(ALL) /etc/init.d/d 表示:redhat用户可以在任何主机上变成任何人去行/etc/init.d 目录下的d 脚本。
例如:
root ALL=(ALL) ALL
redhat ALL=(ALL) /etc/init.d/d
# more /etc/sudoers 确认一下有没有错误
4. 测试:redhat 执行/etc/init.d/d 脚本,让它重启,
$ sudo /etc/init.d/d restart
Password: 此处输入的是redhat自己的密码
Stopping d: [ OK ]
Starting d: [ OK ]
可以看出经过root授权后,Redhat成功执行了该脚本。
按照这个规律,可以定义很多常见的一些命令给普通用户执行。
(2). 让redhat用户不用输入密码就能直接执行serv。
# visudo
redhat ALL=(ALL) NOPASSWD:/in/serv 表示用户不需要输密码
# more /etc/sudoers
测试:
$ sudo /in/serv iptables restart 重启防火墙,不需要输入密码。
(3). 让redhat用户在执行命令是必须输入密码。
# visudo
redhat ALL=(ALL) PASSWD:/in/serv 表示用户需要输如自己的密码
测试:
$ sudo /in/serv d restart
在输入密码5分钟之内,可以任意使用sudo,不用输密码,5分钟之后,在执行就需要输入密码。
用到的命令:
$ sudo -l 查看本人在这台主机上拥有那些权利
# man sudo 更多用法查看帮助
详解sudoers文件:
root ALL=(ALL) ALL 默认为root用户定义好的
可分成4个字段来理解:
个字段指定的是用户,可以是用户名,也可以是别名。
第二个字段指定的是用户所在的主机,可以是ip,也可以是主机名,限制的一般都是本机,也就是限制使用这个文件的主机,如果指定为:192.168.1.88= 表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的,一般都指定为:ALL 表示所有的主机,不管文件拷到那里都可以用。
第三个字段括号里指定的也是用户,比如说 (tom,redhat) 可以是一个或多个,ALL 表示所有用户。
第四个字段指定的是执行的命令。
例如:
root ALL=(ALL) ALL 表示:root用户可以在这台主机上以所有人的身份去执行所有命令。
redhat ALL=(lake) /bin/ls 表示:redhat用户可以在这台主机上变成lake身份去执行ls。
[redhat@localhost ~]$ sudo -u lake ls ~lake redhat以lake的身份查看lake的目录内容
我帮你搜的
sudo是linux系统管理指令,是允许系统让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
apt 是Linux下的一款安装包管理工具,是一个客户/系统。
sudo apt-get是用来安装linux下的各种工具包的。
扩展资料
sudo的特性主要有这样几点:
1、§ sudo能够限制用户只在某台主机上运行某些命令。
2、§ sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志。
3、§ sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
4、§ sudo的配置文件是sudoers文件,它允许系统集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
参考资料:
对于Linux管理者来说,“帐号管理”是再也普通不过的一个环节了,但每次都要去查一大本的手册实在是很浪费时间。我还是老老实实地花点心思把这些常用的功能都整理成一份文档,方便以后的使用和学习,以后也都会继续这样做下去。
本文的所有案例与说明都是基于Ubuntu 16.04.3 LTS 64位作系统,如果你的作系统与我的不一样,可能会出现不一样的结果。但Linux的原理都是通用的,善于使用man可以帮助你更好的管理你的作系统。
上图一共列出了9个相关文件,但这里我只重点讲解前三个文件,也即是 /etc/passwd、/etc/shadow 与 /etc/group。
1、/etc/passwd
User account rmation. --(明文的)用户账号信息
这个文件每一行都代表一个帐号,有几行就代表有几个帐号在你的系统中!不过需要特别注意的是,里面很多帐号本来就是系统正常运行所必须的,我们可以简称它为系统帐号。这些帐号都是你不能随便删除的!
通过查看passwd(5)手册可以查看/etc/passwd的文件结构:
文件结构说明:
“/etc/passwd” 第二项的内容说明
2、/etc/shadow
Secure user account rmation. -- 安全加密的用户账号信息
通过查看shadow(5)手册也可以查看/etc/shadow的文件结构:
如shadow(5)中所述,这个文件中被 “:” 分隔的每项含义如下。
3、/etc/group
Group account rmation. -- 组信息
通过查看group(5)手册也可以查看/etc/group的文件结构:
如group(5)中所述,这个文件中被“:”分隔的每项含义如下。
注意:
“/etc/gshadow” 为 “/etc/group” 提供了与 “/etc/shadow” 相似的功能,但没有被真正地使用。
4、/etc/gshadow
Secure group account rmation. -- 安全加密的组信息
5、/etc/default/useradd
Default values for account creation. -- 创建用户时的默认设置
6、/etc/skel/
Directory containing default files. -- 用户主目录的默认内容
7、/etc/subgid
Per user subordinate group IDs.
8、/etc/subuid
Per user subordinate user IDs.
9、/etc/login.defs
Shadow password suite configuration.
1、添加用户 -- useradd
useradd -- create a new user or update default new user rmation.
常用参数:
例1:最简单的例子
例2:创建一个可以使用的帐号
例3:查看useradd默认设置
使用useradd创建用户时还会参考文件/etc/login.defs的设置,比如UID/GID的指定数值、用户主文件夹设置值、用户删除与密码设置值等,这里也不做深入讨论了。
2、用户密码管理 -- passwd
passwd - change user password
常用参数:
3、用户密码管理 -- chage
chage - change user password expiry rmation
4、用户信息修改 -- usermod
usermod - modify a user account
当然,以上的修改你也可以通过手动修改相关的配置文件来达到一样的目的。
5、删除用户 -- userdel
userdel - delete a user account and related files
注意:
1)一般而言,该帐号如果只是暂时不启用的话,那么将/etc/shadow里面帐号失效日期(第八字段)设置为0就可以让该帐号无法登录,但所有相关的数据都会留下来。使用userdel的时候通常是你真的确定不要该用户在主机上面用任何数据了!
2)如果想要完整地将某个帐号删除,可以执行userdel -r username之前,先以“find / -user username”查出整个系统内属于username的文件,然后再进行删除。
1、初始用户组(initial group)与 有效用户组(effective group):
在/etc/passwd里面的第四列有一个所谓的GID,它就是“ 初始用户组 ”。也就是说,当用户登录系统,立刻就拥有这个用户组的相关权限的意思。
有效用户组:即帐号当前(实时)所使用的用户组。
次要用户组:次要用户组就是除了用户的初始用户组外的其它所属组,在/etc/group的一个字段中所设置,可以有多个(多个用逗号','隔开)。
使用usermod -g可以修改初始用户组,而使用usermod -G则可以修改次要用户组。
例1:修改用户次要用户组
例2:有效与支持用户组的查看
在这个输出的信息中,可知道nosee这个用户同时属于nosee及users这两个组,而且,个输出的即为“ 有效用户组 ”。也就是说,上面例子中的有效用户组为nosee。
2、有效用户组的切换 -- newgrp
上面例子中,nosee的有效用户组从nosee转变成了users。
现在我们来深入讨论下newgrp这个命令,这个命令可以更改目前用户的有效用户组,而且是另外以一个新的shell来提供这个功能。因此如果你想要回到原本的环境中,只需要输入exit即可。
3、新增用户组 -- groupadd
groupadd - create a new group
常用参数:
4、用户组参数修改 -- groupmod
groupmod - modify a group definition on the
常用参数:
注意:不要随意改动GID,容易造成系统资源的错乱。
5、删除用户组 -- groupdel
groupdel - delete a group
注意,只有在/etc/passwd内没有任何用户使用该用户组的作为初始用户组的时候,才可以成功删除。
6、用户组功能 -- gpasswd
gpasswd - administer /etc/group and /etc/gshadow
1)系统(root)的常用参数
2)用户组(Group administrators)的常用参数
1、su
su - change user ID or become superuser
su是最简单的身份切换命令了,它可以进行任何身份的切换。
常用参数:
注意:
1)这个su的用法当中,有没有加上“-”很多的,转为涉及login-shell与not-login shell的变量读取方法。即想要完整的切换到新用户的环境,可以利用“su - username”或“su -l username”。
2)使用root切换到任何用户时,都不需要输入密码
3)当从其它用户切换到root用户时都必须输入root的密码,这样root的密码就很容易流传出去,这是很不妥当的,所以才会有sudo这个命令的出现。
2、sudo
sudo, sudoedit — execute a command as another user
sudo的执行仅需要自己的密码,甚至可以设置不需要密码即可执行sudo。由于sudo可以让你以其他的用户身份执行命令(通常是root的身份),因此并不是所有人才能执行sudo,而是/etc/sudoers内的用户才能够执行sodu这个命令。
/etc/sudoers文件内容如下:
常用参数:
例:使用nosee的身份在/home/nosee/目录下新建一个test文件
sudo的执行流程:
1)当用户执行sudo时,系统于/etc/sudoers文件查找该用户是否有执行sudo的权限;
2)若用户具有可执行sudo的权限后,便让用户输入自己的密码来确认;
3)若密码输入成功,便开始进行sudo后续接的命令(但root执行sudo时不需要输入密码);
4)若欲切换的用户与执行者身份相同,那也不需要输入密码。
因为/etc/sudoers文件有一定的规则,所以我们一帮不直接用vi去编辑。一般,我们都是使用visudo来修改这个文件。
3、visudo
因为/etc/sudoers是有语法的,如果设置错误那会造成无法使用sudo的不良后果,因此才会使用visudo去修改。
一般来说,visudo的设置方式有几种简单的方法,正面我们以几个简单的例子来说明:
1)单一用户可以进行root的所有命令与sudoer文件语法
例:让用户nosee可以使用root的所有命令
2)利用用户组及免密功能处理visudo
例:让nosee用户组可以使用root的所有命令,并且不需要输入密码
注意:用户组的表示只需要在前面加一个百分号%即可,NOPASSWD则是免密的关键字。
3)有限制的命令作
例:让user1用户仅能使用passwd这个命令帮root修改其他用户的密码
注意:一个参数一定要用路径才行,否则visudo会出现语法错误。
但这里有个可怕的地方,就是用户user1竟然也可以去修改root的密码了,这是不应该允许发生的,为了避免上述的问题,应该使用下面的这种配置:
上面参数的意思是,用户user1可以执行“passwd 任意字符串”,但是“passwd”与“passwd root”两个命令除外。
4)通过别名设置visudo
5)sudo的时间间隔问题
两次执行sudo的间隔时间在5分钟内,那么再次执行sudo时就不需要再次输入密码。
6)sudo搭配su的使用方式
很多时候我们需要大量执行很多root的工作,所以一直sudo觉得麻烦。这里有一个变身root用户的办法,而且还不会外泄root密码,前提是你要非常信任你将要为他们做此次设置的用户。
1、查看用户当前所用的shell
1)实时查看当前进程中使用的shell种类:
2)最常用的查看shell的命令,但不能实时反映当前shell
3)环境变量中shell的匹配查找
4)口令文件中shell的匹配查找
2、强制踢出已登录用户
或也可以给他发送一条信息。
3、adduser
adduser也可以用于用户的添加,感觉兴趣的同学可以自行去查阅相关的资料。
1、《鸟哥的Linux私房菜基础学习篇》-- 鸟哥
2、 Debian参考手册
如发现有写得不对或不好的地方非常欢迎到评论区指出与交流,感谢阅读!
——《完》
在Linux上安装Hadoop之前,需要先安装两个程序:
linux终端用户执行不了命令,需要配sudo 怎么配置
你的用户名:test
可以直接用下面的命令添加
echo
"test
ALL=(ALL)
NOPASSWD:
ALL"
>>/etc/sudoers
linux命令求解
你的用户名:test
可以直接用下面的命令添加
echo
"test
ALL=(ALL)
NOPASSWD:
ALL"
>>/etc/sudoers
Linux环境下提升普通用户权限(sudo)
一. Linux环境下提升普通用户权限(sudo)
用sudo让普通用户获得超级用户的一部分权利,能够做超级用户才能做的事情,还能够对普通用户身份做一些限制,指定某一个或某几个人来做,并且普通用户不需要知道超级用户的密码,就能够完成超级用户才能完成的任务。
环境:root和普通用户redhat
1. 授权之前测试:
# /etc/init.d/d restart root执行
Stopping d: [ OK ]
Starting d: [ OK ]
$ /etc/init.d/d restart redhat执行
rm: cannot remove `/var/run/d.pid': Permission denied [FAILED]
Starting d:
touch: cannot touch `/var/lock/subsys/d': Permission denied
可以看出redhat用户执行d脚本重启的时候,被拒绝。
2. 超级用户为普通用户授权,让redhat可以做这件事情。
让redhat这个用户使用sudo调用这个脚本并且执行。
$ sudo /etc/init.d/d resart 为授权之前用sudo
We trust you he received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
redhat is not in the sudoers file. This incident will be reported.
可以看出,由于redhat用户还没有被超级用户授权,所以会出现这样的错误,就算输如root用户密码也是不行的,因为在sudoers文件里没有给予权利。
3. root用户修改 /etc/目录下的sudoers文件。
root用户可以手工修改/etc目录下的sudoers,这个文件权限的默认值是4 4 0,其他用户无权访问。
(两种方法修改,种:chmod 660 /etc/shdoers 改成可以写的权限,然后用vi 编辑即可,改完之后在把权限改回去。第二种:用visudo, visudo会把这个文件保存到一个临时文件里面去,它不是真正的配置文件,改完后这个内容会保存在内存里,退出visudo后才会写进真正的sudoers文件。)
# ls -l /etc/sudoers
-r--r----- 1 root root 580 Oct 4 2004 /etc/sudoers
# visudo
在 root ALL=(ALL) ALL 下面添加一行:redhat ALL=(ALL) /etc/init.d/d 表示:redhat用户可以在任何主机上变成任何人去行/etc/init.d 目录下的d 脚本。
例如:
root ALL=(ALL) ALL
redhat ALL=(ALL) /etc/init.d/d
# more /etc/sudoers 确认一下有没有错误
4. 测试:redhat 执行/etc/init.d/d 脚本,让它重启,
$ sudo /etc/init.d/d restart
Password: 此处输入的是redhat自己的密码
Stopping d: [ OK ]
Starting d: [ OK ]
可以看出经过root授权后,Redhat成功执行了该脚本。
按照这个规律,可以定义很多常见的一些命令给普通用户执行。
(2). 让redhat用户不用输入密码就能直接执行serv。
# visudo
redhat ALL=(ALL) NOPASSWD:/in/serv 表示用户不需要输密码
# more /etc/sudoers
测试:
$ sudo /in/serv iptables restart 重启防火墙,不需要输入密码。
(3). 让redhat用户在执行命令是必须输入密码。
# visudo
redhat ALL=(ALL) PASSWD:/in/serv 表示用户需要输如自己的密码
测试:
$ sudo /in/serv d restart
在输入密码5分钟之内,可以任意使用sudo,不用输密码,5分钟之后,在执行就需要输入密码。
用到的命令:
$ sudo -l 查看本人在这台主机上拥有那些权利
# man sudo 更多用法查看帮助
详解sudoers文件:
root ALL=(ALL) ALL 默认为root用户定义好的
可分成4个字段来理解:
个字段指定的是用户,可以是用户名,也可以是别名。
第二个字段指定的是用户所在的主机,可以是ip,也可以是主机名,限制的一般都是本机,也就是限制使用这个文件的主机,如果指定为:192.168.1.88= 表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的,一般都指定为:ALL 表示所有的主机,不管文件拷到那里都可以用。
第三个字段括号里指定的也是用户,比如说 (tom,redhat) 可以是一个或多个,ALL 表示所有用户。
第四个字段指定的是执行的命令。
例如:
root ALL=(ALL) ALL 表示:root用户可以在这台主机上以所有人的身份去执行所有命令。
redhat ALL=(lake) /bin/ls 表示:redhat用户可以在这台主机上变成lake身份去执行ls。
[redhat@localhost ~]$ sudo -u lake ls ~lake redhat以lake的身份查看lake的目录内容
我帮你搜的
linux下面的sudo命令什么意思
你的用户名:test
可以直接用下面的命令添加
echo
"test
ALL=(ALL)
NOPASSWD:
ALL"
>>/etc/sudoers
Linux环境下提升普通用户权限(sudo)
一. Linux环境下提升普通用户权限(sudo)
用sudo让普通用户获得超级用户的一部分权利,能够做超级用户才能做的事情,还能够对普通用户身份做一些限制,指定某一个或某几个人来做,并且普通用户不需要知道超级用户的密码,就能够完成超级用户才能完成的任务。
环境:root和普通用户redhat
1. 授权之前测试:
# /etc/init.d/d restart root执行
Stopping d: [ OK ]
Starting d: [ OK ]
$ /etc/init.d/d restart redhat执行
rm: cannot remove `/var/run/d.pid': Permission denied [FAILED]
Starting d:
touch: cannot touch `/var/lock/subsys/d': Permission denied
可以看出redhat用户执行d脚本重启的时候,被拒绝。
2. 超级用户为普通用户授权,让redhat可以做这件事情。
让redhat这个用户使用sudo调用这个脚本并且执行。
$ sudo /etc/init.d/d resart 为授权之前用sudo
We trust you he received the usual lecture from the local System
Administrator. It usually boils down to these two things:
#1) Respect the privacy of others.
#2) Think before you type.
Password:
redhat is not in the sudoers file. This incident will be reported.
可以看出,由于redhat用户还没有被超级用户授权,所以会出现这样的错误,就算输如root用户密码也是不行的,因为在sudoers文件里没有给予权利。
3. root用户修改 /etc/目录下的sudoers文件。
root用户可以手工修改/etc目录下的sudoers,这个文件权限的默认值是4 4 0,其他用户无权访问。
(两种方法修改,种:chmod 660 /etc/shdoers 改成可以写的权限,然后用vi 编辑即可,改完之后在把权限改回去。第二种:用visudo, visudo会把这个文件保存到一个临时文件里面去,它不是真正的配置文件,改完后这个内容会保存在内存里,退出visudo后才会写进真正的sudoers文件。)
# ls -l /etc/sudoers
-r--r----- 1 root root 580 Oct 4 2004 /etc/sudoers
# visudo
在 root ALL=(ALL) ALL 下面添加一行:redhat ALL=(ALL) /etc/init.d/d 表示:redhat用户可以在任何主机上变成任何人去行/etc/init.d 目录下的d 脚本。
例如:
root ALL=(ALL) ALL
redhat ALL=(ALL) /etc/init.d/d
# more /etc/sudoers 确认一下有没有错误
4. 测试:redhat 执行/etc/init.d/d 脚本,让它重启,
$ sudo /etc/init.d/d restart
Password: 此处输入的是redhat自己的密码
Stopping d: [ OK ]
Starting d: [ OK ]
可以看出经过root授权后,Redhat成功执行了该脚本。
按照这个规律,可以定义很多常见的一些命令给普通用户执行。
(2). 让redhat用户不用输入密码就能直接执行serv。
# visudo
redhat ALL=(ALL) NOPASSWD:/in/serv 表示用户不需要输密码
# more /etc/sudoers
测试:
$ sudo /in/serv iptables restart 重启防火墙,不需要输入密码。
(3). 让redhat用户在执行命令是必须输入密码。
# visudo
redhat ALL=(ALL) PASSWD:/in/serv 表示用户需要输如自己的密码
测试:
$ sudo /in/serv d restart
在输入密码5分钟之内,可以任意使用sudo,不用输密码,5分钟之后,在执行就需要输入密码。
用到的命令:
$ sudo -l 查看本人在这台主机上拥有那些权利
# man sudo 更多用法查看帮助
详解sudoers文件:
root ALL=(ALL) ALL 默认为root用户定义好的
可分成4个字段来理解:
个字段指定的是用户,可以是用户名,也可以是别名。
第二个字段指定的是用户所在的主机,可以是ip,也可以是主机名,限制的一般都是本机,也就是限制使用这个文件的主机,如果指定为:192.168.1.88= 表示这个文件只有在这台主机上生效,如果拷贝到别的机子上是不起作用的,一般都指定为:ALL 表示所有的主机,不管文件拷到那里都可以用。
第三个字段括号里指定的也是用户,比如说 (tom,redhat) 可以是一个或多个,ALL 表示所有用户。
第四个字段指定的是执行的命令。
例如:
root ALL=(ALL) ALL 表示:root用户可以在这台主机上以所有人的身份去执行所有命令。
redhat ALL=(lake) /bin/ls 表示:redhat用户可以在这台主机上变成lake身份去执行ls。
[redhat@localhost ~]$ sudo -u lake ls ~lake redhat以lake的身份查看lake的目录内容
我帮你搜的
sudo是linux系统管理指令,是允许系统让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
apt 是Linux下的一款安装包管理工具,是一个客户/系统。
sudo apt-get是用来安装linux下的各种工具包的。
扩展资料
sudo的特性主要有这样几点:
1、§ sudo能够限制用户只在某台主机上运行某些命令。
2、§ sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志。
3、§ sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。
4、§ sudo的配置文件是sudoers文件,它允许系统集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
参考资料:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。