Linux命令系列之

1.用户和组管理

用户和组相关文件:

  • /etc/passwd:用户及其属性信息
  • /etc/shadow:用户密码及其相关属性
  • /etc/group:组及其属性信息
  • /etc/gshadow:组密码及其相关属性

/etc/passwd文件格式:

login name:登录用户名称
passwd:密码
UID:用户身份编号
GID:登录默认所在组编号
GECOS:用户全名或注释
home directory:用户主目录,家目录,如 /home/hong
shell:用户默认使用shell(如/bin/bash)

/etc/shadow文件格式:

登录用户名称
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间

用户和组的关系:

  • 用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建主组
  • 用户的附加组:一个用户可以属于零个或多个辅助组,附属组

1.1组管理

Linux中可以将一个或多个用户加入用户组中,用户组是通过GID(group identifie)来唯一标识。

  • 管理员组:root - 0
  • 普通组:
    • 系统组:对守护进程获取资源进行权限分配
    • 普通组:给用户使用

用户组命令:

  • groupadd:添加组
  • groupmod:修改组
  • groupdel:删除组
  • gpasswd:修改组密码
  • newgrp:临时切换组
  • groupmems:更改和查看组成员
  • groups:查看用户组关系

1.2用户管理

linux中每个用户是通过UID(user identifie)来唯一标识的。

  • 管理员UID:root - 0
  • 普通用户UID:1-60000自动分配
    • 系统用户:对守护进程获取资源进行权限分配
      1-499(centos6版本以前),1-999(centos7版本之后)
    • 登录用户:给用户进行交互式登录使用
      500+(centos6版本以前),1000+(centos7版本之后)

用户管理命令:

useradd命令 - 可以创建新的Linux用户

#格式
useradd [option] LOGIN
#常用选项
-u:UID
-o:配合-u选项,不检查UID的唯一性
-g GID:指明用户所属基本组
-c "comment":用户注释信息
-d HOME_DIR:以指定路径为家目录
-s SHELL:指明用户默认shell程序
-G GROUP:为用户指明附加组,组须事先存在
-N:不创建私用组做主组,使用users组做主组
-r:创建系统用户
-m:创建家目录,用于系统用户
-M:不创建家目录,用于非系统用户
-p:指定密码

usermod命令 - 可以修改用户属性

#格式
usermod [option] LOGIN

userdel - 删除Linux用户

userdel [option]... LOGIN
#常见选项
-f,--force  强制
-r,--remove 删除用户家目录和邮箱

id - 查看用户的UID,GID信息

id [option]... [user]
#常见选项
-u:显示UID
-g:显示GID
-G:显示用户所属的组ID
-n:显示名称,需配合ugG使用

su - switch user:可以切换用户身份,并且以指定用户的身份执行命令

#格式
su [option...] [-] [user [args..]]
#常见选项
-l,--login   su -l username,相当于su - username
-c,--command <command> 把一个简单命令传给shell

切换用户的方式:

  • su username:非登录模式切换,即不会读取目标用户的配置文件,不改变当前工作目录,为不完全切换
  • su - username:登录模式切换,会读取目标用户的配置文件,切换至自己家目录,即完全切换

passwd - 可以修改用户密码

#格式
passwd [options] usename
#常用选项
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays
-x maxdays
-w warndays
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码

用户相关命令:

  • chfn:指定个人信息
  • chsh:指定shell
  • finger:查看用户个人信息

2.用户权限管理

2.1 文件权限

常用命令

  • chown:设置文件的所有者
  • chgrp:设置文件的属组

2.1.1 文件权限介绍

文件权限对象定义:

  • owner:属主,u
  • group:属组,g
  • other:其他,o

文件针对访问者的权限

  • r:Readable 可读
  • w:Writeable 可写
  • x:Excutable 可执行

对文件的权限:

  • r 可使用文件查看工具,如,cat,获取内容
  • w 可修改其内容
  • x 可以把此文件提请内核启动为一个进程,即可以执行此文件

对目录的权限:

  • r 可以使用ls查看此目录中文件列表
  • w 可在此目录中创建文件,也可以删除此目录中的文件,而和此被删除的文件的权限无关
  • x 可以cd进入目录,可以使用ls -l看文件元数据,属于目录可访问的最小权限
  • X 只给目录x权限,不给无执行权限的文件x权限

数学法权限:

  • r 对应数字4
  • w 对应数字2
  • x 对应数字1

2.1.2文件授权

授权方式:

mode:who opt permission
who:u,g,o,a
opt:+,-,=
permission:r,w,x

实例:文件授权

#给文件授予用户写执行,组写执行,其他读执行
[root@local ~]# chmod u+wx,g-r,o=rx file.txt 
#给目录递归授权,文件属组为读写执行权限
[root@local ~]# chmod -R g+rwx /testdir   
#数字授权法:给文件授权用户读写,组读,其他用户读权限
[root@local ~]# chmod 644 file.txt        

2.2 默认权限

umask - 可以用来保留在创建文件权限

实现方式:

  • 新建文件:默认权限 666-umask,如果所得结果某位存在执行权限(奇数),则将其权限+1,偶数不变
  • 新建目录:默认权限 777-umask

非特权用户umask默认是002
root的umask默认是022

umask用法:

[root@local ~]# umask
#模式方式显示
[root@local ~]# umask -S
#输出可被调用
[root@local ~]# umask -p
#修改umask值
[root@local ~]# umask num

持久保存umask

  • 全局设置: /etc/bashrc
  • 用户设置:~/.bashrc

2.3 特殊权限

r,w,x三种特殊权限:

  • SUID
  • SGID
  • Sticky

二进制的可执行文件上SUID特殊权限功能:

1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
2. 启动为进程后,其进程的属主为原程序文件的属主
3. SUID只对二进制可执行程序有效
4. SUID设置在目录上无意义

二进制的可执行文件上的SGID权限功能:

1. 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有执行权限
2. 启动为进程后,其进程的属组为原程序文件属组

Sticky权限功能:

1. 具有写权限的目录通常用户可以删除目录中的任何文件,无论该文件的权限或拥有权在目录设置Sticky位,只有文件的所有者或root可以删除该文件。
2. sticky设置在文件上无意义

特殊权限用法:

#给文件属主添加SUID权限
[root@local ~]# chmod u+s file.txt
#数字授权方式:给文件属主添加SUID权限
[root@local ~]# chmod 6xxx file.txt
#取消文件属主SUID权限
[root@local ~]# chmod u-s file.txt

#给文件属组添加SGID权限
[root@local ~]# chmod g+s file.txt
#数字授权方式:给文件属组添加SGID权限
[root@local ~]# chmod 2xxx file.txt
#取消文件属组SGID权限
[root@local ~]# chmod g-s file.txt

#给文件其他用户添加Sticky权限
[root@local ~]# chmod o+t dir
#数字授权方式:给文件其他用户添加Ssticky权限
[root@local ~]# chmod 1xxx dir
#取消文件其他用户Sticky权限
[root@local ~]# chomd o-t dir

设定文件特殊属性:

[root@local ~]# chattr +i file.txt  #不能删除,改名,更改
[root@local ~]# chattr +a file.txt  #只能追加内容,不能删除,改名
[root@local ~]# lsattr              #显示特定属性

2.4 文件访问控制列表ACL

ACL - Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其他人,可以对更多的用户设置权限

ACL命令用法:

[root@local ~]# setfacl -m u:hong:- file.txt
[root@local ~]# getfacl file.txt

ACL备份和还原

主要的文件操作命令,如cp,mv都支持ACL,只是cp命令需要加上-p参数。
但tar等常见的备份工具是不会保留目录和文件的ACL信息

3.相关概念及操作

资源分派

  • Authentication:认证,验证用户身份
  • Authorization:授权,不同的用户设置不同权限
  • Accouting | Audition:审计

安全上下文

Linux安全上下文context:运行中的程序,即进程(process),以进程发起者的身份运行,进程所能够访问的资源的权限取决于进程的运行者身份。

原文地址:https://www.cnblogs.com/hony625/p/15042496.html