Linux用户与权限来啦!

文章目录

  • 前言
  • 一、用户知识点
  • 二、用户及权限的配置文件
    • 1./etc/passwd
    • 2./etc/group
    • 3./etc/gshadow
  • 三、用户及权限的操作命令
    • 1.用户操作命令
    • 2.查看权限与设置权限
    • 3.附加权限
    • 4.acl权限
  • 总结


前言

今天给大家介绍一下Linux中的用户与权限


一、用户知识点

基于账号的访问控制
账户类别:用户账号、组账号
识别方式:UID、GID
用户账号
超级用户root、系统用户、普通用户
组账号
基本组(私有组)
附加组(从属组)

二、用户及权限的配置文件

1./etc/passwd

保存用户帐号的基本信息
每个用户记录一行,以:分割为7个字段
字段1:用户帐号的名称
字段2:密码字串或占位符 x
字段3:用户帐号的UID号
字段4:所属基本组的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell程序的路径

2./etc/group

保存组帐号的基本信息
每个组记录一行,以:分割为4个字段
字段1:组帐号的名称
字段2:密码占位符 x
字段3:组帐号的GID号
字段4:本组的成员用户列表

3./etc/gshadow

保存组帐号的管理信息
每个组记录一行,以:分割为4个字段
字段1:组帐号的名称
字段2:加密后的密码字符串
字段3:本组的管理员列表
字段4:本组的成员用户列表

三、用户及权限的操作命令

1.用户操作命令

useradd 添加用户
格式:useradd [选项]… 用户名
常用命令选项
-u:指定 UID 标记号
-d:指定宿主目录(家目录),缺省为 /home/用户名
-G:指定所属的附加组
-s:指定用户的登录解释器

[root@localhost ~]# useradd nsd01
[root@localhost ~]# grep nsd01 /etc/passwd
[root@localhost ~]# id nsd01
[root@localhost ~]# useradd nsd02
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# useradd -u 1200 nsd03
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# useradd nsd04
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# ls /home/
[root@localhost ~]# useradd -d /opt/nsd05 nsd05
[root@localhost ~]# ls /home/
[root@localhost ~]# ls /opt/
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# cat /etc/shells 
[root@localhost ~]# useradd -s /sbin/nologin nsd06
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# groupadd abc
[root@localhost ~]# useradd -G abc nsd07
[root@localhost ~]# id nsd07
[root@localhost ~]# useradd -G abc nsd08

usermod修改用户
格式:usermod [选项]… 用户名
常用命令选项
-l:更改用户帐号的登录名称
-u:用户id
-d:家目录路径
-s:登录解释器
-G:附加组 //重置附加组

[root@localhost ~]#  usermod -d /opt/nsd06 nsd06
[root@localhost ~]#  grep nsd /etc/passwd
[root@localhost ~]#  ls /opt/nsd06
[root@localhost ~]#  usermod -u 1500 nsd08
[root@localhost ~]#  grep nsd /etc/passwd
[root@localhost ~]#  id nsd08
[root@localhost ~]#  groupadd tarena
[root@localhost ~]#   usermod -G tarena nsd08
[root@localhost ~]#   id nsd08

passwd命令(对用户设置密码)
格式:passwd [选项]… 用户名
常用命令选项
–stdin:从标准输入(比如管道)取密码

[root@localhost ~]#   passwd nsd01
[root@localhost ~]#   su - nsd01
[root@localhost ~]#  passwd nsd01
[root@localhost ~]#   passwd nsd02
[root@localhost ~]#  echo 123 | passwd --stdin nsd03

userdel 删除用户
格式:userdel [-r] 用户名
添加 -r 选项,宿主目录/用户邮件也一并删除

[root@localhost ~]# userdel nsd01
[root@localhost ~]# ls /home/

[root@localhost ~]# rm -rf   /home/nsd01/
[root@localhost ~]# userdel  -r nsd02
[root@localhost ~]# ls /home/
<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

2.查看权限与设置权限

访问方式(权限)
– 读取:允许查看内容-read r
– 写入:允许修改内容-write w
– 可执行:允许运行和切换-execute x
权限适用对象(归属)
– 所有者:拥有此文件/目录的用户-user u
– 所属组:拥有此文件/目录的组-group g
– 其他用户:除所有者、所属组以外的用户-other o

使用 ls -l 命令
– ls -ld 文件或目录…
以-开头:文本文件 以d开头:目录 以l开头:快捷方式
[root@localhost ~]# ls -ld /etc/
[root@localhost ~]# ls -l /etc/passwd
[root@localhost ~]# ls -l /etc/shadow

[root@localhost ~]# ls -ld /home/student

[root@localhost ~]# ls -ld /tmp

常见报错信息: Permission denied :权限不足
使用 chmod 命令
– chmod [-R] 归属关系±=权限类别 文档…
[-R]:递归设置权限

[root@localhost ~]# mkdir /nsd01
[root@localhost ~]# ls -ld /nsd01/
[root@localhost ~]# chmod u-w /nsd01
[root@localhost ~]# ls -ld /nsd01/
[root@localhost ~]# chmod u+w /nsd01
[root@localhost ~]# ls -ld /nsd01/
[root@localhost ~]# chmod g+w /nsd01
[root@localhost ~]# ls -ld /nsd01
[root@localhost ~]# chmod g=r /nsd01
[root@localhost ~]# ls -ld /nsd01
[root@localhost ~]# chmod o=---  /nsd01
[root@localhost ~]# ls -ld /nsd01
[root@localhost ~]# chmod u=rwx,o=rx /nsd01
[root@localhost ~]# ls -ld /nsd01
[root@localhost ~]# chmod u=rwx,g=rx,o=rx /nsd01
[root@localhost ~]# ls -ld /nsd01
[root@localhost ~]# chmod ugo=rwx  /nsd01
[root@localhost ~]# ls -ld /nsd01

3.附加权限

附加权限(特殊权限)
Set GID
占用属组(Group)的 x 位
显示为 s 或 S,取决于属组是否有 x 权限
对目录有效
在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份

  • 让子文档自动继承父目录所属组身份
	[root@A ~]# mkdir /nsd07
	[root@A ~]#  chmod g+s /nsd07
	[root@A ~]# chmod g-s /nsd07
	[root@A ~]# chmod g-x  /nsd07
	[root@A ~]# chmod g+s /nsd07
	[root@A ~]# chmod g+x /nsd07
	[root@A ~]# chown :tarena /nsd07
	[root@A ~]#  mkdir /nsd07/aa
	[root@A ~]#  mkdir /nsd08
	[root@A ~]#  chown :tarena /nsd08
	[root@A ~]# mkdir /nsd08/bb
	[root@A ~]# chmod g+s /nsd08
	[root@A ~]#  mkdir /nsd08/cc
	[root@A ~]# touch /nsd08/a.txt
	[root@A ~]# ls -l /nsd08/a.txt

Set UID
? 附加在属主的 x 位上
– 属主的权限标识会变为 s
– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

[root@A ~]# /usr/bin/mkdir  /opt/haha
[root@A ~]# ls /opt/
[root@A ~]# cp /usr/bin/mkdir /usr/bin/xixidir
[root@A~]# ls /usr/bin/xixidir
[root@A ~]# /usr/bin/xixidir  /opt/abc
[root@A ~]# ls /opt/
[root@A ~]# chmod u+s  /usr/bin/xixidir 
[root@A ~]# ls -l  /usr/bin/xixidir
[root@A ~]# su - zhangsan
[zhangsan@A ~]$ /usr/bin/mkdir   dc01
[zhangsan@A ~]$ ls -l 
[zhangsan@A ~]$ /usr/bin/xixidir  dc02
[zhangsan@A ~]$ ls -l
[zahngsan@A ~]$ exit

Sticky Bit
附加在其他人的 x 位上
– 其他人的权限标识会变为 t
– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入权限(禁止删除别人的文档)

[root@A ~]# mkdir  /nsd09
[root@A ~]#  ls -ld /nsd09
[root@A ~]#  chmod 777 /nsd09
[root@A ~]#  ls -ld /nsd09
分别切换用户lisi,用户zhangsan
[lisi@A ~]$ touch /nsd09/lisi.txt
[lisi@A ~]$ ls /nsd09/
[zhangsan@A ~]$ touch /nsd09/zhangsan.txt
[zhangsan@A ~]$ ls /nsd09
[lisi@A ~]$ rm -rf /nsd09/zhangsan.txt                      //删除成功
[zhangsan@A ~]$ rm -rf  /nsd09/lisi.txt                     //删除成功
    
[root@A ~]#  chmod o+t /nsd09
[root@A ~]# ls -ld /nsd09
分别切换用户lisi,用户zhangsan
[lisi@A ~]$ touch /nsd09/lisi.txt
[lisi@A ~]$ ls /nsd09/
[zhangsan@A ~]$ touch /nsd09/zhangsan.txt
[zhangsan@A ~]$ ls /nsd09
[lisi@A ~]$ rm -rf /nsd09/zhangsan.txt                      //删除失败
[zhangsan@A ~]$ rm -rf  /nsd09/lisi.txt                     //删除失败

4.acl权限

acl访问控制列表
? acl访问策略
– 能够对个别用户、个别组设置独立的权限
– 大多数挂载的EXT3/4、XFS文件系统默认已支持

setfacl命令和getfacl命令使用
格式:setfacl [选项] u:用户名:权限 文件…
setfacl [选项] g:组名:权限 文件…
常用命令选项
-m:定义一条ACL策略
-x:清除指定的ACL策略
-b:清除所有已设置的ACL策略
-R:递归设置ACL策略

getfacl 文档… //查看ACL策略

[root@A ~]# mkdir /nsd11
[root@A ~]# chmod o=--- /nsd11
[root@A ~]# ls -ld /nsd11
[root@A ~]# setfacl -m u:lisi:rwx /nsd11
[root@A ~]# setfacl -m u:zhangsan:rwx /nsd11
[root@A ~]# setfacl -m u:gelin01:rx /nsd11
[root@A ~]# setfacl -m u:gelin02:rx /nsd11
[root@A ~]# getfacl /nsd11
[root@A ~]# setfacl -x u:lisi /nsd11                    //删除用户lisi  ACL策略
[root@A ~]# getfacl /nsd11
[root@A ~]# setfacl -x u:zhangsan /nsd11      //删除用户zhangsan  ACL策略
[root@A ~]# getfacl /nsd11
[root@A ~]#  setfacl -b /nsd11                         //删除所有ACL策略
[root@A ~]#  getfacl /nsd11

总结

以上就是今天所讲的内容
包括用户与权限的添加与设置,内容较多,大家慢慢学习。

你可能感兴趣的:(linux权限,linux用户,linux组,linux)