linux 用户及权限

简介:

用户管理 
用户帐号 与 组帐号 唯一标识: UID(用户的ID) GID(组的ID)
管理员的UID为:0 
用户 
/etc/passwd #用户基本信息
添加用户
useradd 
-u 设置账户UID
-d 设置账户家目录 默认为/home/用户名
-g 设置账户所属基本组
-e 设置账户的失效日期 格式为YYYY-MM-DD
-G 设置账户所属附加组
-s 设置账户登陆Shell

例:

    [root@server0 ~]# grep 'nsd01' /etc/passwd
    nsd01:x:1001:1001::/home/nsd01:/bin/bash
    用户名:密码占位符:UID:GID:用户的描述信息:家目录:解释器
    [root@server0 /]#  useradd  nsd01
    [root@server0 /]#  id  nsd01 
    [root@server0 /]#  grep  'nsd'  /etc/passwd 

    [root@server0 /]#  useradd -u 1100 nsd02     #指定UID
    [root@server0 /]#  grep  'nsd'  /etc/passwd 

    [root@server0 /]#  useradd -d /op/haha nsd03  #指定家目录
    [root@server0 /]#  grep  'nsd'  /etc/passwd 
       指定登陆的解释器程序
    [root@server0 /]#  useradd -s /sbin/nologin nsd04 
    [root@server0 /]#  grep  'nsd'  /etc/passwd
      如果用户的解释器程序为/sbin/nologin则不能登陆操作系统
    [root@server0 /]# useradd -g nsd01 nsd09
    [root@server0 /]# id nsd09

    [root@server0 /]# useradd -G nsd01  nsd10
    [root@server0 /]# id nsd10

修改用户信息
usermod
-u 修改账户UID
-d 修改账户家目录
-g 修改账户所属基本组
-G 修改账户所属附加组
-e 修改账户的失效日期
-s 修改账户登陆Shell

显示账户信息
id 用户名

删除用户
userdel 
-r 递归删除 删除用户家目录

临时切换用户身份
su - 用户名

账户密码
/etc/shadow #用户密码信息
[root@server0 ~]# head -1 /etc/shadow
root:$6$UiGI4Tc2$htsXYn5cJnOqv3P1VLcUSgfjDu2pL5yiJBuua6foZAHdwqeuLHfYUfS/vBn27Wjvoel8EJgtdsMjyquqvKAmf1:16261:0:99999:7:::
用户名 : 密码 : 上一次修改时间 : 密码最短使用时间 : 密码最长使用时间 : 提前多少时间警告::: 
修改密码:
passwd 用户名
-l 锁定账户
-u 解锁账户 
#管理员模式下 
echo '密码' | passwd --stdin 用户名 #非交互式更改密码

组账户管理
组账户:
方便管理用户帐号(权限)把相同权限用户加入到同一个组中 
分类:
基本组
附加组(公共组 从属组) 
/etc/group #组基本信息 
创建组帐号
groupadd

例:

    [root@server0 ~]# useradd kenji
    [root@server0 ~]# useradd tom
    [root@server0 ~]# useradd kaka
    [root@server0 ~]# useradd henter
    [root@server0 ~]# groupadd   tarena
    [root@server0 ~]# grep 'tarena' /etc/group

gpasswd 
gpasswd -a #加入组成员
gpasswd -d #删除组成员
gpasswd -M #覆盖组成员

例:

    gpasswd - M '' 组名   #删除该组全部成员   
    [root@server0 ~]# grep 'tarena' /etc/group  #查看组信息
    [root@server0 ~]# gpasswd -a kenji tarena   #加入组成员
    [root@server0 ~]# id kenji 
    [root@server0 ~]# gpasswd -a tom tarena
    [root@server0 ~]# grep 'tarena' /etc/group
    [root@server0 ~]# gpasswd -a kaka tarena
    [root@server0 ~]# grep 'tarena' /etc/group
    [root@server0 ~]# gpasswd -d kenji tarena   #删除组成员
    [root@server0 ~]# grep 'tarena' /etc/group
    [root@server0 ~]# gpasswd -M 'kenji,henter' tarena
    [root@server0 ~]# grep 'tarena' /etc/group
    [root@server0 ~]# gpasswd -M 'kenji,kaka,tom,henter' tarena
    [root@server0 ~]# grep 'tarena' /etc/group
    [root@server0 ~]# gpasswd -M  '' tarena
    [root@server0 ~]# grep 'tarena' /etc/group

用户安全:

passwd
-l锁定 -u解锁 -S 看状态

    [root@server0 ~# useradd test
    [root@server0 ~]# echo 123 | passwd --stdin test
            更改用户 test 的密码 。
            passwd:所有的身份验证令牌已经成功更新。
    [root@server0 ~]# passwd -S test
    test PS 2018-01-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
    [root@server0 ~]# passwd -l test
            锁定用户 test 的密码 。
            passwd: 操作成功
    [root@server0 ~]# passwd -S test
            test LK 2018-01-01 0 99999 7 -1 (密码已被锁定。)
    [root@server0 ~# passwd -u test
            解锁用户 test 的密码。
            passwd: 操作成功
    [root@server0 ~]# passwd -S test
            test PS 2018-01-01 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

chage #查看用户信息
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期” 0 强制修改密码
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期” yyyy/mm/dd 指定失效日期 (-1 取消)
-h, --help 显示此帮助信息并推出
-I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天数”

    [root@server0 ~]# chage -E 2018/01/31 tom
    [root@server0 ~]# chage -l tom
    最近一次密码修改时间                  :102, 2018
    密码过期时间                  :从不
    密码失效时间                  :从不
    帐户过期时间                      :131, 2018
    两次改变密码之间相距的最小天数     :0
    两次改变密码之间相距的最大天数     :99999
    在密码过期之前警告的天数    :7

与用户相关的配置问文件
/etc/passwd
/etc/shadow
/etc/login.defs #添加系统用户的默认配置文件
/etc/skel/ #存储用户系统环境配置文件

[root@test ~]# ls /etc/skel/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@test ~]# useradd yy1
[root@test ~]# ls /home/yy1/ -a
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@test ~]# touch /etc/skel/test.txt
[root@test ~]# useradd yy2
[root@test ~]# ls -a /home/yy2/
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  test.txt

基本权限的类型
访问方式(权限)
读取:允许查看内容 -read r
写入:允许修改内容 -write w
可执行:允许运行和切换 -execuit x

对于文本文件: 
r: cat head tail less
w: vim
x: 运行

权限适用对象(归属)
所有者:拥有此文件/目录的用户-user u
所属组:拥有此文件/目录的组-group g
其他用户:除所有者,所属组以外的用户-other o

[root@server0 ~]# ls -ld /etc/
drwxr-xr-x. 133 root root 8192 1030 10:14 /etc/
[root@server0 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2089 1030 10:14 /etc/passwd
[root@server0 ~]# ls -l /etc/rc.local 
lrwxrwxrwx. 1 root root 13 57 2014 /etc/rc.local -> rc.d/rc.local

权限位 硬连接数 属主 属组 大小 最后修改时间 文件/目录名称

权限位(9位)
文件类型(1) User(属主)(3) Group(属组)(3) Other(其他人)(3)

文件类型

  • 代表普通文件 d 代表目录 l 代表链接文件 
    三位一组分别为 所有者权限,所属组权限,其他账户权限

设置基本权限
chmod (只root能用)
chmod 归属关系+-=权限类别 文档
-R 递归将权限应用于所有的子目录与子文件

    [root@server0 ~]# chmod u-x /nsd01/
    [root@server0 ~]# ls -ld /nsd01/
    drw-r-xr-x. 2 root root 6 1030 10:41 /nsd01/
    [root@server0 ~]# chmod g+w /nsd01/
    [root@server0 ~]# ls -ld /nsd01/
    drw-rwxr-x. 2 root root 6 1030 10:41 /nsd01/
    [root@server0 ~]# chmod u=rwx,g=rx,o=r /nsd01/
    [root@server0 ~]# ls -ld /nsd01/
    drwxr-xr--. 2 root root 6 1030 10:41 /nsd01/

如何判断用户具备权限
1.判断用户所属的身份 是否是所有者 是否在所有组 所有者>所属组 >其他人 匹配及停止
2.看相应权限位的权限划分

目录的r 权限:能够ls 浏览此目录内容
目录的w 权限:能够执行 rm/mv/cp/mkdir/touch/..等更改目录内容的操作
目录的x 权限:能够cd切换到此目录

设置文件归属
使用chown命令
chown [所有者][:[所属组]] 文件或目录
-R 递归将权限应用于所有的子目录与子文件
例:

        [root@server0 /]# chown :tedu /nsd02
        [root@server0 /]# ls -ld /nsd02
        drwxr-xr-x. 2 root tedu 6 1030 11:42 /nsd02
        [root@server0 /]# useradd dc
        [root@server0 /]# chown dc:tedu /nsd02
        [root@server0 /]# ls -ld /nsd02
        drwxr-xr-x. 2 dc tedu 6 1030 11:42 /nsd02
        [root@server0 /]# chown student /nsd02
        [root@server0 /]# ls -ld /nsd02
        drwxr-xr-x. 2 student tedu 6 1030 11:42 /nsd02

特殊权限(附加权限)

Set UID
附加在属主的x位上
属主的权限标识会变成s
适用于可执行文件,Set UID 可以让使用者具有文件属组的身份及部分权限 
(传递所有者身份) 如 手持尚方宝剑
例:

[root@server0 /]# cp /usr/bin/touch  /usr/bin/hahach
[root@server0 /]# chmod u+s /usr/bin/hahach
[root@server0 /]# ls -l /usr/bin/hahach 
-rwsr-xr-x. 1 root root 62432 1030 14:14 /usr/bin/hahach
[root@server0 /]# su - dc
[dc@server0 ~]$ touch a.txt 
[dc@server0 ~]$ hahach b.txt
[dc@server0 ~]$ ls -l
total 0
-rw-rw-r--. 1 dc   dc 0 Oct 30 14:15 a.txt
-rw-rw-r--. 1 root dc 0 Oct 30 14:15 b.txt

Set GID
附加在属组的x位
属组的权限标识变成为s
适用于可执行文件,功能于Set UID类似
适用于目录,Set GID可以是目录下新增的文档自动设置与父目录相同的属组

为了使在这个目录下新增的文件或目录的所属组和父目录相同(只针对未来生成的文件)

例:

[root@server0 /]# ls -l /test/1.txt 
-rw-r--r--. 1 root root 0 1030 14:37 /test/1.txt
[root@server0 /]# chown :tedu /test/
[root@server0 /]# chmod g+s /test/
[root@server0 /]# ls -ld /test
drwxr-sr-x. 2 root tedu 18 1030 14:37 /test
[root@server0 /]# mkdir /test/testone
[root@server0 /]# ls -l /test/
-rw-r--r--. 1 root root 0 1030 14:37 1.txt
drwxr-sr-x. 2 root tedu 6 1030 14:39 testone

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

[root@server0 /]# chmod u+w,g+w,o+w /public/
[root@server0 /]# chmod o+t /public/
[root@server0 /]# ls -ld /public/
drwxrwxrwt. 2 root root 6 1030 14:43 /public/

[zhangsan@server0 /]$ ls -l /public/
-rw-rw-r--. 1 dc       dc       0 Oct 30 14:53 dc.txt
-rw-rw-r--. 1 test     test     0 Oct 30 14:52 test.txt
-rw-rw-r--. 1 zhangsan zhangsan 0 Oct 30 14:52 zhangsan.txt
[zhangsan@server0 /]$ rm -rf /public/test.txt 
rm: cannot remove ‘/public/test.txt’: Operation not permitted

ACL 访问控制列表
作用
文档归属的局限性
任何人只属于三种角色:属主,属组,其他人
无法实现更精细的控制
acl访问策略
能狗对个别用户,个别组设置独立的权限 
大多挂载EXT3/4(存储小文件),XFS(存储大文件)文件系统已支持
命令
getfacl 文档 #查看ACL策略
setfacl [-R] -m u:用户名:权限类别 文档
setfacl [-R] -m g:组名 :权限类别 文档
setfacl [-R] -x u:用户名 文档 #删除指定ACL策略
setfacl [-R] -b 文档 #清空ACL策略

例:

    [dc@server0 ~]$ cd /NB/
    bash: cd: /NB/: Permission denied

    [root@server0 /]# ls -ld /NB/
    drwxrwx---. 2 root cw 6 1030 15:27 /NB/
    [root@server0 /]# setfacl -m u:dc:rx /NB/
    [root@server0 /]# ls -ld /NB/
    drwxrwx---+ 2 root cw 6 1030 15:27 /NB/
    [root@server0 /]# getfacl /NB/
    getfacl: Removing leading '/' from absolute path names
    # file: NB/
    # owner: root
    # group: cw
    user::rwx
    user:dc:r-x
    group::rwx
    mask::rwx
    other::---

    [dc@server0 ~]$ cd /NB/
    [dc@server0 NB]$ 

权限的数值变化
权限的数值化
基本权限:r=4,w=2,x=1
附加权限:SUID=4,SGID=2,Sticky Bit=1
采取数值形式设置权限
chmod [-R ] nnn 文当 设置基本权限
chmod [-R ] xnnn 文档 设置附加权限(x为附加权限数值)

    例如:
    [root@room1pc32 桌面]# mkdir /test01
    [root@room1pc32 桌面]# ls -ld /test01
    drwxr-xr-x. 2 root root 6 1111 09:26 /test01
    [root@room1pc32 桌面]# chmod 007 /test01
    [root@room1pc32 桌面]# ls -ld /test01
    d------rwx. 2 root root 6 1111 09:26 /test01
    [root@room1pc32 桌面]# chmod 777 /test01 
    [root@room1pc32 桌面]# ls -ld /test01
    drwxrwxrwx. 2 root root 6 1111 09:26 /test01
    [root@room1pc32 桌面]# chmod 4750 /test01/
    [root@room1pc32 桌面]# ls -ld /test01/
    drwsr-x---. 2 root root 6 1111 09:26 /test01/









本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2056754,如需转载请自行联系原作者
目录
相关文章
|
12天前
|
安全 Linux 数据安全/隐私保护
Linux权限详解
Linux权限详解
|
22天前
|
Linux 数据安全/隐私保护 Windows
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
30 0
|
24天前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
1月前
|
Shell Linux 程序员
Linux:权限篇 (彻底理清权限逻辑!)
Linux:权限篇 (彻底理清权限逻辑!)
51 1
|
1月前
|
Linux Shell 程序员
【linux】权限
【linux】权限
43 2
|
1月前
|
存储 Linux 数据安全/隐私保护
Linux 权限
Linux 权限
|
22天前
|
Ubuntu 关系型数据库 MySQL
linux创建用户创建组删除用户以及组分配权限
linux创建用户创建组删除用户以及组分配权限
8 0
|
25天前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
31 2
|
28天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 设置终端机的写入权限 mesg 命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置终端机的写入权限 mesg 命令 使用指南
23 0
|
28天前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux 设置文件创建时的默认权限掩码 umask命令使用教程
【Shell 命令集合 文件管理】Linux 设置文件创建时的默认权限掩码 umask命令使用教程
26 0