02-Linux:用户名和用户组

内容提要

  • 用户管理

  • 用户组管理

  • 权限管理

用户和用户组

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组成员拥有这个目录的读写权限,并禁止其他无关用户操作这个目录。

如何解决以上问题

  1. 新建组workgroup并添加四个用户,分别为其设置密码(初始密码;比较简单)

  2. 监理工作目录/home/work

  3. 把这个新建的目录的所有权交给workgroup组。

  4. 组成员对其拥有读写权限,其他人不具备任何权限。(r-读,w-写,x-执行,--无权限)

  5. 把这个工作目录的所属用户设置为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 教程 | 菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值