zoukankan      html  css  js  c++  java
  • 6Linux用户身份与文件权限

    3类用户身份:

    (1)管理员UID为0,root

    (2)系统用户UID为1-999;nologin不能登录系统,老版本5、6中是1-499

    (3)普通用户UID为1000开始,老版本5、6中是1000-65535

    UID是不能冲突的,管理员创建的普通用户UID默认是从1000开始,即使前面有闲置的号码

    常用命令:

    (1)useradd 参数 用户名,创建用户

    -d 指定用户的家目录(默认为/home/username)
    -e 账户的到期时间,格式为YYYY-MM-DD.
    -u 指定该用户的默认UID
    -g 指定一个初始的用户基本组(必须已存在)
    -G 指定一个或多个扩展用户组
    -N 不创建与用户同名的基本用户组
    -s 指定该用户的默认Shell解释器

    (2)id 用户名,查看用户信息

    (3)groupadd 选项 群组名;创建用户组

    (4)usermod 选项 用户名;修改用户是的属性

    -g 变更所属用户组
    -G 变更扩展用户组
    -u 修改用户的UID

    如:将用户linuxprobe加入到root用户组中,这样扩展组列表中则会出现root用户组的字样,而基本组不会受到影响
    usermod -G root linuxprobe
    usermod -G root linuxprobe
    uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

    如:用-u参数修改linuxprobe用户的UID号码值。除此之外,我们还可以用-g参数修改用户的基本组ID,用-G参数修改用户扩展组ID
    usermod -u 8888 linuxprobe
    id linuxprobe
    uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

    /etc/group  用户、用户组信息从这里面可以删除

    (5)passwd 用户名,修改密码

    --stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username

      ls -l /etc/shadow  权限,密码保存文件

    (6)userdel 选项 用户名,删除用户

    -f 强制删除用户
    -r 同时删除用户及用户家目录

    文件权限与归属

    在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。

    -:普通文件。
    d:目录文件。
    l:链接文件。
    b:块设备文件。
    c:字符设备文件。
    p:管道文件。

    一般文件:

    对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。

    目录文件:

    对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。

    文件的读、写、执行权限可以简写为rwx,亦可分别用数字4、2、1来表示,文件所有者,所属组及其他用户权限之间无关联,如表

                                                                              占用磁盘大小    修改时间

    chmod 权限 文件名称

    chown 用户名:用户组 文件名

    chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。

    文件特殊权限:

    SUID:chmod u+s 文件名;让命令的执行者临时后去到了所有者的身份

    SGID:chmod g+s 文件名;让执行者临时拥有属组的权限

    SBIT: chomd o+t 文件名;让目录内的文件只能被文件所有者删除;将Sticky Bit直译成了“粘滞位”或“保护位”

    数字法对应:

    SUID:4

    SGID:2

    SBIT: 1

    文件的隐藏属性

    lsattr 文件名;查看隐藏权限

    chattr +权限 文件

              -权限 文件

    文件访问控制列表:facl

    setfacl 设置;file access control list =facl

    使用-R递归参数;-m修改参数;如果想要删除某个文件的ACL,则可以使用-b参数,用户是u: 组是g:
    setfacl -Rm u:linuxprobe:rwx /root

    getfacl 查看;

    su

    su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户下,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)

    当从root管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成root管理员就需要进行密码验证了;这也是一个必要的安全检查

    sudo

    命令具有如下功能:

    限制用户执行指定的命令:
    记录用户执行的每一条命令;
    配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
    验证密码的后5分钟内(默认值)无须再让用户再次验证密码

    如果担心直接修改配置文件会出现问题,则可以使用sudo命令提供的visudo命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。

    只有root管理员才可以使用visudo命令编辑sudo服务的配置文件
    使用visudo命令配置sudo命令的配置文件时,其操作方法与Vim编辑器中用到的方法一致,因此在编写完成后记得在末行模式下保存并退出。在sudo命令的配置文件中,按照下面的格式将第99行(大约)填写上指定的信息:

    谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表

    [root@linuxprobe ~]# visudo
     96 ##
     97 ## Allow root to run any commands anywhere
     98 root ALL=(ALL) ALL
     99 linuxprobe ALL=(ALL) ALL

    99 linuxprobe ALL=(ALL) /usr/bin/cat,/usr/binreboot  ,号作间隔

    每次执行sudo命令都要输入一次密码其实也挺麻烦的,这时可以添加NOPASSWD参数,使得用户执行sudo命令时不再需要密码验证

    99 linuxprobe ALL=NOPASSWD: /usr/sbin/poweroff

     
  • 相关阅读:
    Windows性能计数器应用
    Azure Oracle Linux VNC 配置
    Azure 配置管理系列 Oracle Linux (PART6)
    Azure 配置管理系列 Oracle Linux (PART5)
    Azure 配置管理系列 Oracle Linux (PART4)
    Azure 配置管理系列 Oracle Linux (PART3)
    Azure 配置管理系列 Oracle Linux (PART2)
    vagrant多节点配置
    docker基本操作
    LINUX开启允许对外访问的网络端口命令
  • 原文地址:https://www.cnblogs.com/biglu/p/10580930.html
Copyright © 2011-2022 走看看