[操作系统] Linux学习笔记(四)用户组和权限管理

4575 0
暗夜星魂 2021-12-9 19:00:05 | 显示全部楼层 |阅读模式
​​​​用户
  • 任何用户被分配一个独特的用户id号(UID)
  • UID 0 标识root用户
  • 用户账号通常从UID 1000 开始
  • 用户名和UID信息通常存储在/etc/passwd文件中
  • 当用户登陆时它被分配一个主目录并且运行一个程序(通常是一个shell程序)
  • 没有权限许可用户不能读取,写或者执行其他用户的文件

用户账号文件   /etc/passwd
①user01:②x:③1000:④1000:⑤User One:⑥/home/user01:⑦/bin/bash
  • 字段1:用户名称
  • 字段2:密码占位符"x"
  • 字段3:用户账号的UID号
  • 字段4:用户的私有组
  • 字段5:用户描述信息
  • 字段6:用户的主目录
  • 字段7:登录Shell信息

  • 用户必须属于一个组
  • 每一个组被分配一个独特的组 ID(gid)
  • gid信息保存在/etc/group中
  • 每一个用户都有自己的私有组
  • 可以将用户添加到别的组,该组称为用户的附加组
  • 同一个组中的所有用户能共享属于这个组的文件

组信息文件   /etc/group
用于保存组的基本信息
①group01:②x:③10000:④user01,user02,user03
  • 字段1:组的名称
  • 字段2:密码占位符"x"
  • 字段3:组的ID号
  • 字段4:该组是user1,user2,user3的附加组

useradd创建新用户
其语法如下:
useradd [选项]  用户名
选项说明:
-u  用户号   指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
-g  用户组    指定用户所属的用户组
-c   comment  指定一段注释性描述
-d   目录       指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-G   用户组   用户组指定用户所属的附加组
-s   Shell文件   指定用户的登录Shell

举例:
#useradd -u 2000 -g it user1
#useradd -s /sbin/nologin  -G root  Mary

groupadd创建新的组
其语法如下:
useradd [选项]  用户名
选项说明:
-u     用户号       指定用户的用户号,如果同时有-o选项则可以重复使用其他用户的标识号。
-g     用户组       指定用户所属的用户组
-c     comment   指定一段注释性描述
-d     目录           指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-G     用户组       指定用户所属的附加组
-s     Shell文件    指定用户的登录Shell

举例:
# useradd -u 2000 -g it user1
# useradd -s /sbin/nologin -G root Mary

其他相关命令
usermod 修改用户信息,用法与useradd类似
          -aG:追加一个附加组;   -L:锁定用户;    -U解锁用户;   -m:移动家目录,与-d一起使用

userdel删除用户
          -r :删除家目录和邮箱
groupadd  添加新的用户
         -g :指定gid
groupmod 修改组的信息
        -n :指定新的组名
groupdel 删除组
groupmems  管理组内成员
        -g :指定组 ;  -a :添加用户 ; -d : 删除用户; -l:列出组内的用户 ; -p :清空用户

密码文件  /etc/shadow
用于保存用户的密码信息
①user03:②$6$CSsX...output omitted...:③17933:④0:⑤99999:⑥7:⑦2:⑧18113:⑨
字段1:用户账号的名称
字段2:加密的密码字串信息
字段3:最近一次修改密码的时间,表示从1970.01.01至今的天数
字段4:密码的最短使用天数,默认值为0,没有要求
字段5:密码的最长有效天数,默认值为99999
字段6:密码即将到期警告天数,默认值为7
字段7:在密码过期之后账号保持活动的天数,指定天数后账号被锁定,成为无效
字段8:账号失效时间,默认值为空,以1970.01.01的天数表示
字段9:保留字段(未使用)

1.该列留空,即“::",表示该用户没有密码。
2.该列为"!",即"!",表示该用户被锁,被锁将无法登录,但是可能其他的登录方式是不受限制的,如ssh公钥认
3.该列为" * ",即":*:*",也表示该用户被锁,和“!”效果是一样的。
4.该列以"!"或"!!"开头,则也表示该用户被锁。
5.该列为"!!",即“:!!:",表示该用户从来没有设置过密码。
6.如果格式为"$id$salt$hashed",则表示该用户密码正常,其中$id$的id表示密码的加密算法,$1$表示使用MD5算法,$2a$表示使用Blowfish算法,"$2y$"是另一算法长度的Blowfish,""$5$"表示SHA-256算法,而”$6$"表示SHA-512算法。

配置密码的期限
语法:chage [选项]  用户
# chage -m 0 -M 90 -W7 -I 14 user3  分别修改用户密码的最短期限,最长期限,警告周期和失效期限
# chage -d 0 user3    强制要求用户在下一次登录时更新密码
# chage -l user3   显示用户密码的信息
# chage -E 2020-10-10 user3 用户将于2020-10-10到期(YYYY-MM-DD格式)  

Linux文件安全
  • 每一个文件都有一个uid和gid
  • 任何进程运行时都带一个uid和一个或多个gid标识符
  • 通常决定于哪个用户执行这个进程
  • 三种访问类型:
              运行的进程跟文件有着同样的uid(user)
              运行的进程跟文件有着同样的gid(group)
              其他进程(other)

权限优先级
  • 如果UID匹配,用户权限适用
  • 否则,如果GID匹配,组权限适用
  • 如果都不匹配,其他权限适用

​
Linux文件系统权限
  • 查看文件和目录的权限
#  ls -l 文件名
#  ls  -ld 目录名 (只看文件本身的详细信息)
           -      rw-r--r--.      1        root      root      2484   Mar  18  00:04    /etc/passwd
文件类型   访问权限   连接数  所属人 所属组  大小        修改时间           文件名

文件类型:  -:代表普通文件   d:  目录     l:链接文件     b:块设备   c:字符设备    p和s:特殊的文件

  • 权限对文件和目录的影响
    权限           对文件的影响                         对目录的影响
  r(读)       可以读取文件的内容             可以列出目录的内容(文件名)
  w(写)      可以更改文件的内容             可以创建或删除目录中的任一文件
  x(执行)   可以作为命令执行文件          可以进入目录(还需要r权限才能读目录内容)

更改文件和目录的权限
符号方式修改文件权限
   chmod    用于更改文件对于某类用户的操作权限
   chmod    [-R]      ① who     ②what      ③which     ④ FILE...
①设置权限的对象  可以是:u(用户) g(组)  o(其他人)   a(所有人)
②属性操作符    +增加权限    -减少权限    =精确设置
③权限内容,可以是:r(读)  w(写)     x(执行),以及这些权限的组合

touch 更新时间戳 创建文件
a.time 磁盘
m.time 文件内容最后一次修改的时间 增量备份
c.tine 文件状态最后一次修改的时间 属性(大小,权限,拥有人。。。。。)
stat file 查看文件的时间戳


更改文件和目录的权限
  • 数字方式修改文件权限
  • 使用三个数字(nnn)模式
    chmod    nnn    FILE...
  • 通过把数值相加来计算权限
第一个数字代表所属主(u)的权限
第二个数字代表所属组(g)的权限
第三个数字代表其他人(o)的权限

举例如下:
增加文件属主的执行权限(x)                          # chmod u+x  test
去除文件属主与属组的写权限(w)                # chmod u-w,g-w test
设置其他用户的文件权限为可执行                  # chmod o=x test
设置属主完全控制,属组和其他人读权限       #  chmod 744 test

a=u+g+o
u=user 用户人
g=group 用户组
o=other 其他
​
r=读权限
w=写权限
x=执行
​
字符的方式
chmod ugo=rwx
a=rwx 表示所有栏位
u=rwx,g=rwx,o=rwx
+rwx 表示所有的栏位
ugo-rwx
u+/-,g+/-,o+/-
​
数字的方式
chmod 000
r=4
w=2
x=1
​
目录 x 表示可以进入到该目录
r 表示可以读取目录内文件
w 表示可以在目录内创建文件
​
目录最少会有两个栏位 rx
只有x没有意义,看不到目录的内容
只有r没有意义,无法进入到目录
​
chmod 修改文件的权限
chown 修改文件的拥有人
​
chown user1:user1 文件
-R 递归设置

设置文件属主和属组
chown   用于设置文件的属主和属组
命令格式:  chown [-R] OWNER[:GROUP] FILE...
chgrp    用于设置文件属组
命令格式:  chgrp [-R] GROUP FILR...
只有root可以修改文件的拥有人,root和文件的拥有人可以修改文件的拥有组,前提是用户需要在组里面
例子:
  #  chown user1 test   设置文件test的属主为用户user1
  #  chown :it2  test   设置文件test的属组为用户组it2
  #  chgrp  it2 test    效果同上
  #  chown  user3:it3 test  设置文件test的属主为user3,并设置文件的属组为it3​​​​​​​​

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行