内容提要
-
用户管理
-
用户组管理
-
权限管理
用户和用户组
1.计算机通过用户名和密码识别用户。
2.Linux中新建用户后,需要设置密码(企业开发中,很多时候需要远程访问,为了安全必须设置密码)
3.系统中有一个特殊的用户root,这个被称作超级用户,一般默认存在,拥有最高权限。
4。用户组:把几个用户归在一块,这样的组被称为用户组,规定文件所属用户组的权限可使该组成员拥有这些权限。
普通用户和超级用户
一台电脑可以有且仅有一个超级用户以及若干个普通用户。
-
普通用户:安装系统时我们创建的用户(如
st),也可以由超级用户进行分配,如lucy -
超级用户:又被称作最高管理员,用户名是
root,Linux系统内置,第一次使用root用户的时候,需要设置密码。
修改超级用户root的密码
语法:
sudo passwd
解释,然后按照提示输入密码即可,这里的密码输入是不可见的

注意:终端输入密码的时候,没有提示。如果输入错误,回车键后会提示重新输入。
普通用户和超级用户的切换
-
普通用户切换到
root用户:
sudo -i # 没有设置root密码的时候,使用这个进入
-----------------------------------------------
su root # 设置root密码之后,可以通过这个进入
-
ROOT用户切换到普通用户:
su 用户名
whoami
说明:查看当前登录的用户
whoami
团队共享文件
问题抛出
企业开发中,我们一般是团队开发。团队成员需要在一台服务器上共同完成一项任务(开发一套软件),团队成员在服务器上的用户分别是lucy,lewls,petter,它们都属于workgroup这个用户组。
在/home目录下新建一个名为work的目录,作为这个小组的工作目录。
workgroup组成员拥有这个目录的读写权限,并禁止其他无关用户操作这个目录。
如何解决以上问题
-
新建组
workgroup并添加四个用户,分别为其设置密码(初始密码;比较简单) -
监理工作目录
/home/work -
把这个新建的目录的所有权交给
workgroup组。 -
组成员对其拥有读写权限,其他人不具备任何权限。(
r-读,w-写,x-执行,--无权限) -
把这个工作目录的所属用户设置为
lewls
具体操作
# 1. 新建组workgroup
sudo groupadd workgroup
# 2. 添加四个用户并设置密码
sudo useradd -d /home/lucy -m lucy
sudo passwd lucy
sudo useradd -d /home/lewis -m lewis
sudo passwd lewis
sudo useradd -d /home/mike -m mike
sudo passwd mike
sudo useradd -d /home/petter -m petter
sudo passwd petter
# 3. 建立工作目录
sudo mkdir /home/work
# 4. 把目录所有权交给workgroup组
sudo chown :workgroup /home/work
# 5. 设置权限,组成员有读写权限,其他人无权限
sudo chmod g=rw,o= /home/work
# 6. 把工作目录所属用户设置为lewis
sudo chown lewis /home/work
用户管理
指令
添加新用户
执行者:ROOT用户
语法:
[sudo] useradd [选项]用户名
注意:
如果在普通用户下,需要在指令中加入sudo,如果在ROOT用户下,则省略sudo
,这里的sudo是临时提升到ROOT用户权限。
举例:
sudo useradd -d /home/lucuy -m lucy
#解释:创建了一个用户Lucy,并在家目录下创建一个同名目录/home/lucy(还会默认创建一个跟用户名同名的 组:lucy)
#:以上指令做了三件事:
#1.在系统数据库创建了一个名为Lucy的用户(用户)
#2.在/home目录下创建了一个名为lucy的目录(用户文件夹)
#3.在数据库创建了一个跟用户同名的组lucy(用户组)
注意:如果在新建用户的时候没有指定用户组,就会创建一个与用户名同名的组,并让新用户加入这个组。
举例:
sudo useradd -d /home/peter -mg lucy peter
#解释:创建了一个用户peter,并在家目录下创建了一个同名目录/home/peter,同时将peter用户添加到已经存在的组lucy
查看用户所属组
执行者:ROOT用户
语法:
[sudo] groups 用户名
举例:
sudo groups st
删除用户
执行者:ROOT用户
语法:
[sudo] userdel [选项] 用户名
选项:
-f:强制删除用户,即使用户当前已登录(强制删除)
-r:删除用户的同时,删除与用户相关的所有文件(递归删除)
举例:
sudo userdel -rf peter
# 解释:删除用户peter,并在不提示任何信息的前提下递归删除peter在/home下对应的用户文件夹(/home/peter)
给用户添加口令(密码)
执行者:ROOT用户
语法:
[sudo] passwd [选项] 用户名
选项:
-l:锁定口令,也就是禁用账户
-u:解锁口令,也就是解锁i账户,和-l不能同时用
-d:使账号无口令(建议不要这么做)
-e:强制用户下次登陆是修改密码
如果缺省选项,则修改/设置当前用户的口令
说明:
-
ROOT用户:给用户设置初始密码(这个密码复杂度没有要求,因为初始密码一般比较简单)
sudo passwd lucy
# 解释:给lucy设置初始密码,密码复杂度无要求
-
普通用户:修改自己的密码(这个密码是用户的专属密码,对于密码的复杂度有要求)
passwd
修改用户
执行者:ROOT用户
语法:
[sudo] usermod [选项] 用户名
选项:
-c:备注,修改用户的备注文字
-g:用户组,修改用户所属的主用户组
-G:附属组,修改用户所属的附属群组
-s:shell,修改用户登入后所使用的shell
-u:uid,修改用户的uid
举例:
sudo usermod -g root peter
# 解释,将peter用户所属的主组改成root组
sudo usermod -g lucy -G root,st lucy
# 解释:将lucy用户所属的主组改成Lucy,将附属组改成root,st,多个附属组之间使用逗号连接
用户组管理
指令
添加用户组
执行者:ROOT用户
语法:
[sudo] groupadd [选项] 组名
选项:
-g:GID,指定新用户组的标识(唯一编号),如果不指定,系统会自动编号,一般采用自动编号
举例:
sudo groupadd workgroup
# 解释:创建一个名为workgroup的组
查看所有用户组
语法:
#方式1. 查看用户组信息
cat /etc/group
#方式2. 查看用户组信息
[sudo] cat/etc/gshadow
查看用户组中的用户(扩展)
语法:
grep '组名' /etc/group
# 使用grep命令从/etc/group文件中查找包含指定组名的行
getent group 组名
#使用getent命令获取指定组名的组信息
删除用户组
执行者:ROOT用户
语法:
[sudo] groupdel [选项] 组名
举例:
sudo groupl workgroup
# 解释:删除我们添加的组信息
修改用户组
执行者:ROOT用户
语法:
[sudo] groupmod [选项] 新组名 旧组名
选项:
-g:GID,组编号(唯一编号)
-o:和-gt同时使用,允许用户组新的GID和系统已有用户组的GID相同,不建议用
-n:将用户组的名字改成新名字(new)
举例:
sudo groupmod -n SDY workgroup #解释:将workgroup改名为SDY
sudo groupmod -n workgroup SDY -g 1002 -o #解释:同时更改组名以及GID
权限管理
所谓的权限管理,就是说让某个用户或者用户组拥有某个文件或目录,让用户或者用户组对文件是否拥有读写执行权限,
指令
修改文件/目录的所有者或者组
执行者:ROOT用户
语法:
[sudo] chown [选项] ---[所有者] [组名] 文件或目录路径
选项:
-c::示更改部分信息
-f:忽略错误信息
-R:递归处理指定目录以及子目录中的所有文件
-v:显示详细的处理信息
举例:
sudo chown lucy /home/work/demo01.c
# 解释:指定demo01.c文件的所有者为用户lucy,用户组默认
sudo chown :lucy /home/work/demo02.c
# 解释:指定demo02.c文件的所有者为用户组Lucy,用户默认
sudo chown -R mike:lucy /home/work/demo02
# 解释:指定demo02及其子目录的所有者都是用户mike和用户组lucy

修改文件或者目录的权限
这里提到的权限:r(读),w(写),x(执行)对应的r``w``x替换成-,表示无这个权限
执行者:ROOT用户
语法:
[sudo] chmod [选项] 权限 文件或目录路径
选项:
-c:显示更改部分信息
-f:忽略提示信息
-R:递归处理指定目录以及子目录中的所有文件
-v:显示详细的处理信息
文字设定法(实现1)
语法:
sudo chmod [参数1] [参数2] 权限名 文件或目录路径
参数:
-
参数1:给谁添加权限
-
a:all,所有用户,举例:rwx rwx rwx -
u:user。用户。举例:
rwx --- --- -
g:group,用户组,举例:--- rwx --- -
o:other,其他用户或者组,举例:--- --- rwx注意:u、g、o可以组合
-
-
参数2:如何操作权限
-
+:增加权限 -
-:删除权限 -
=:赋予权限
-
-
权限名:添加什么权限
-
r:readonly,只读 -
w:write,写 -
x:执行 -
-:无权限(针对性rwx)
-
举例:
sudo chmod u=rwx,g=rx,o=- /home/work/demo01.c
# 解释:针对demo01.c文件,用户拥有读写执行权限,用户组拥有读和执行权限,其他用户或者组无权限
数字设定法(实现2)
语法:
[sudo] chmod 权限数字 文件或目录路径
权限数字:
r:4
w:2
x:1
-:0
解释:
权限数字的表示:777,三个数字:
① 第1个数字表示用户权限,最终的值是rwx-的和,比如:表示拥有读写执行权限,就是 4 + 2 + 1 = 7
② 第2个数字表示用户组权限,最终的值是rwx-的和,比如:表示拥有读和执行权限,就是4 + 1 = 5
③ 第3个数字表示其他用户或组权限,最终的值是rwx-的和,比如:表示拥有无权限,就是0
举例:
sudo chmod 750 /home/work/demo01.c
# 解释:针对demo01.c文件,用户拥有读写执行权限,用户组拥有读和执行权限,其他用户或者组无权限
课外资料补充
菜鸟教程:Linux 教程 | 菜鸟教程









6521

被折叠的 条评论
为什么被折叠?



