linux权限体系简析

简介:
linux 三种用户
        超级用户:root
        普通用户
        虚拟用户“伪用户” shell 是  /sbin/nologin 作用是:为弄个服务(程序)提供支持的。
    用户组的概念;
        组的由来。方便管理用户。如果要设置许多用户的权限很繁琐。这里需要把用户加入组。
        然后给组设定权限。
     用户的配置文件 : /etc/passwd
    # more /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    解析:用户名:密码(x 是个占位符。真正的密码文件位于/etc/shadow):属主的id(UID):属组的id(GID):描述性文字:调用的shell
    可以使用id命令来查看 属主的id和属组的id。
    # id root
    uid=0(root) gid=0(root) groups=0(root)
    LINUX下面 UID 的数值又65535个之多。一般以500为界限。小于等于500的为系统所占有的id。500以上的为普通用户所占有的id
    修改用户的属性:可以利用 命令  vipw (直接进入/etc/passwd 的编辑模式)
    修改普通用户为超级用户:  vipm   修改 普通用户的UID 为0  
    密码配置文件: /etc/shadow
    组配置文件 /etc/shadow
    其实: useradd执行创建用户是读取以下3个文件的设置。来创建用户的相关信息的。
    /etc/login.defs
    /etc/default/useradd
    /etc/kernel (目录)
# more /etc/login.defs | grep -Ev "#|^$"
MAIL_DIR        /var/spool/mail
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7
UID_MIN                   500  (centos7 下是1000开始默认)
UID_MAX                 60000
GID_MIN                   500
GID_MAX                 60000
CREATE_HOME     yes
UMASK           077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 
# more /etc/default/useradd 
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
# ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc
    所有创建中组和用户如果不指定。都会根据上面3个文件默认自行设定参数。
    命令操作;
     groupadd  创建一个新的工作组。
        -g 指定新的组id
     groupdel  用于删除指定的组
     useradd    添加用户命令:
     格式:   useradd  选项  参数
     举个例子:
     # useradd swa4 -u 510 -g swa -G swa1 -c swa -s /bin/bash
        # more /etc/passwd | grep swa4
        swa4:x:510:501:swa:/home/swa4:/bin/bash
        -u 指定用户的UID 
        -g 指定用户的组id
        -G  指定用户的附加组(一个用户除了自身的组外,还可以加入其它组。
            就好比,你是羽毛球协会的,你也可以加入乒乓球协会)
        -c  是注释的内容。
        -s   用户登录后的shell
        -M  不创建用户目录
        一般用于创建新用户支持某种服务可以不让用户登录并且不创建用户目录。
        #  useradd  nginx -s /sbin/nologin -M

    userdel  删除用户
        -r   删除用户。连同用户目录下是文件一起删除
        -f   如果用户在登录状态也可以强制删除。
    此外,还可以通过修改 /etc/passwd 等文件修改。
    usermod  用于修改用户的基本信息。
        -c 修改用户的备注文字
        -d 修改用户登录的目录
        -g  修改用户所属的群组
        -G 修改用户所属的附加群组
        -L 锁定用户账号名称
        -U 接触用户ID
        -l 修改用户的名称
        注意-l 的用法:  usermod  -l  修改后的名字   需要修改的名字
linux的权限体系 :除了用户和组的概念还有rwx体系:
    # ls -l ./a
    -rw-rw-r--. 1 root root 0 Jan 29 23:48 ./a
    使用ls 查看一个文件的权限信息。
    我们简析下
    第一列表示文件的属性
    第二列表示硬链接数
    第三列和第四列是所属用户和组
    第五列是大小
    第六,七,八列修改时间
    第九列 文件名
    我们来看下第一列:
    -rwxr-xr-x.
    先来说下这个点的的含义:就是不使用acl的意思(没有给他ACL设置)如果设置了.就变成+
     ACL全称Access Control List,访问控制列表.作用可以针对某个文件赋予单个用户的权利。
    如果,你想让不同组的用户,拥有跨组的权限可以通过acl单独对某用户控制。
    # setfacl -m user:swa:rw- ./a
    # getfacl --omit-header ./a
    user::rw-
    user:swa:rw-
    group::r--
    mask::rw-
    other::r--
    # ls -l ./a
    -rw-rw-r--+ 1 root root 0 Jan 29 23:48 ./a

     -rw-rw-r-- 解读
    r  表示 读权限   w 表示写的权限   - 表示没有权限  此外还有 x 表示执行权限
    还有一种数字话的表示方式: 4 代表读权限  2 代表写权限  1 代表执行权限 0 代表没有权限。
    第一个-代表文件类型。常见的- 文件 d 目录 l 链接 b 块设备文件 c 字符设备文件 s 套接口文件
    rw- 是属主的权限也是第一个root(属主)的权限。
    -rw 是属组的权限也是第二个root(属组)的权限。
    r--  表示除了属组和属组以外的任何用户。
    由此而生的命令:chown 改变属组或属主  chmod 改变文件的权限
    chown只有文件主和超级用户才可以便用该命令
        -R  改变目录下的所有文件的属主或属组(是个递归操作。对目录使用)
    chown  -R 主名称:组名称
    由于读写执行权限又2种解读方法所以chmod 也又2中写法:
        chmod  a=rwx,g=rw-,0=r-x  abc(a属主,g 属组,o 其它用户)
        想对应的数字为:chmod  765 abc
此外,还有些特殊权限:SUID、SGID、SBIT
    SUID:当用户执行具有x权限的二进制文件时拥有此文件所有者的权限
    SGID:当用户执行具有x权限的二进制文件时拥有此文件所在组的权限,另外也可以对目录设置此权限
    SBIT:当用户对某个目录具有w和x权限时,在该目录下建立的文件和目录只有该用户和root用户才可以删除
    # ls -ld /tmp
    drwxrwxrwt. 6 root root 4096 Jan 29 22:56 /tmp  
    这个目录就有 SBIT权限 
    下面通过数字来设置下 SUID 和 SGID 的权限
    # chmod 4664 a
    # ls -l a
    -rwSrw-r--+ 1 root root 0 Jan 29 23:48 a

    # chmod 2664 a
    # ls -l a
    -rw-rwSr--+ 1 root root 0 Jan 29 23:48 a
    SUID 对应4 (对应在x位上的S) SGID 对应 2(对应在x位上的S)   SBIT 对应 1(对应在x位上的t)
    在原有 3位权限的基础上再加上一位。即可添加这些特殊权限了。

    属性
    名称大小:文件名、 大小,这两个最好理解了就是文件名字和占用空间大小
    所属属性:拥有者、拥有组,如1中所述
    时间属性:mtime、ctime、atime
    mtime:最近一次文件内容变化时间,是具体内容变化,不是属性、权限变化,ls显示的结果就是mtime
    ctime:最近一次文件状态变化时间,这里就是属性、权限那些变化时的时间
    atime:最近一次读取文件时间,如用cat去读取文件的时候

还可以通过设置文件属性来保护文件不被修改。
    chattr 命令:改变文件属性。
        + <属性>:开启文件或目录的该项属性
        - <属性>:关闭文件或目录的该项属性
        = <属性>:指定文件或目录的该项属性
    i :不能对文件修改
    # chattr +i /etc/passwd
    此时你可以vim进入尝试修改。大都会提醒文件只读。
    如何查看文件是否设置了特殊属性呢? lsattr
    # lsattr /etc/passwd
    ----i--------e- /etc/passwd
    如果想修改回来?
    # chattr -i /etc/passwd
    # lsattr /etc/passwd
    -------------e- /etc/passwd









本文转自 swallow_zys  51CTO博客,原文链接:http://blog.51cto.com/12042068/1898291,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
505 3
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
382 2
|
11月前
|
安全 Unix Linux
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
25000多字详细讲解,深度剖析权限管理核心。从基础权限到复杂的特殊权限,逐一拆解,无论你是零基础小白还是经验丰富的运维人员,都能在这里找到提升技能的关键知识,全面掌握 Linux 权限管理。还不快来看看?
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
|
10月前
|
安全 Linux 数据安全/隐私保护
【Linux】深入理解linux权限
本文深入解析Linux权限管理机制,涵盖权限概念、用户角色、文件属性及操作方法。文章分为前言、权限介绍、用户与角色、文件属性、权限修改及常见问题六大板块。详细说明了权限类型(r/w/x)、角色优先级、chmod/chown指令用法,以及目录权限、umask掩码、粘滞位等重点内容。掌握这些知识,可有效提升Linux系统安全性和灵活性,是管理员必备技能。喜欢的话别忘了点赞支持哦! ❤❤❤
665 6
|
11月前
|
安全 Linux 数据安全/隐私保护
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
574 6
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
358 1
linux特殊权限!!
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
301 11
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
194 2
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
1045 2
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?