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

    用户身份与文件权限

    用户身份与能力:
        Linux管理员之所以是root,不是因为它的名字,而是因为该用户的身         份号码是UID(user IDentification)的数值是0,在liunx中UID相当      于我们的身份证号码一样具有唯一性,因此可通过用户的UID的值来判断       用户身份。在RHEL7系统中,用户身份有以下这些:
    
           系统管理员UID为0:系统的管理员用户
    
           系统用户UID为1~999:liunx系统为了避免某个服务程序出现漏洞            被黑,而默认服务程序会有独立的系统用户负责运行,控制了被破坏              的范围
    
           普通用户UID从1000开始:是由管理员创建的日常工作用户
    
    useradd命令:
            用于创建新的用户,格式“useradd【选项】 用户名”
            默认的用户家目录是被存放在/home目录中
            默认的解释器就是/bin/bash
            默认会创建一个与该用户同名的基本用户组
    
            参数:
            -d 指定用户的家目录(默认为/home/username)
            -e 账户的到期时间,格式为:YYYY-MM-DD
            -u 指定该用户的默认UID
            -g 指定一个初始的用户基本组(必须已经存在)
            -G 指定一个或多个扩展用户组
            -N 不创建与用户同名的基本用户组
            -s 指定该用户的默认Shell解释器
        例如:
        useradd -d /home/liunx -u 8888 -s /sbin/nologin user1
        id user1
        //注意使用的是/sbin/nologin这是表示该用户不能登录到系统中
        //::/sbin/nologin也是终端解释器中的一员
    
    groupadd命令: 
        groupadd创建用户组 格式为:groupadd [选项] 群组名
        例如:创建一个用户组ronny
        groupadd ronny
    
    usermod命令:
        usermod修改用户属性 格式为:usermod [选项] 用户名
        用户信息保存在/etc/passwd文件中
        vim可以修改其中的用户参数项目,
        usermod修改已经创建的用户信息,UID、基本/扩展用户组、默认终端
    
            参数:
            -c 填写用户账户的备注信息
            -d -m 参数-m与-d连用,重新指定用户的家目录并自动把旧             的数据转过去
            -e 账户的到期时间 ,格式为YYYY-MM-DD
            -g 更变所属用户组
            -G 更变扩张用户组
            -L 设定用户禁止登录系统
            -U 解锁用户,允许登录
            -s 变更默认终端
            -u 修改用户的UID
    
        例如:
        查看用户信息
        id user1
        然后将用户user1加入到root用户组中,这样扩展组列表则会
        出现root用户组的字样,而基本组不受影响
        例如:
        usermod -G user1
        id user1
        在加入-u参数修改用户的UID号码值。
        例如:
        usermod -u 10000 user1
        id user1
    
    passwd命令:
        用于修改用户的密码、过期时间、认证信息等
        格式为:passwd【选项】【用户名】
    
        普通用户只能使用它来修改密码,
        root可以修改其他所有人密码
        root管理员修改他人或者是自己的密码不需要验证旧密码
    
        参数:
        -l 锁定用户,禁止登录
        -u 解锁,允许登录
        --stdin 允许通过标准输入修改用户的密码
        例如:echo "newpasswd" | passwd --stdin username
        -d 是该用户可用空密码登录系统
        -e 强制用户在下次登录是修改密码
        -S 显示用户的密码是否被锁定,已经密码所使用的加密算法名称
    
    例如:
        passwd 
        //下面输入你的密码
        //确认密码
        passwd username
        //修改用户的密码
        //再次确认密码
    
    
        //禁止某个用户登录系统
        passwd -l username
        //查看是否锁定
        passwd -S username
        //解锁
        passwd -u username
        passwd -S username
    
    userdel命令:
        用于删除用户,格式"userdel[选项] 用户名"
    
        参数:
        -f 强制删除用户
        -r 同是删除用户和用户家目录
    
        例如:
        id username
        userdel -r username
        id username
    

    文件权限与归属:
    -:普通文件
    d:目录文件
    l:链接文件
    b:块设备文件
    c:字符设备文件
    p:管道文件

    目录文件的权限:
    r:能够读取目录内文件的列表
    w:能够在目录内新增、删除、重命名文件
    x:能够进入该目录
    文件读写执行权限简写为:rwx(数字表示:4,2,1)
    例如:
    764:rwxrw-r--
    642: rw--w--wx
    153: --xr-x-wx
    
    文件信息实例:
    ls -l install.log
    -rw-r--r-- 1 root root 34298 04-02 00:23 install.log
    开头的-:文件类型(这里是普通文件)
    rw-r--r--:访问权限(所有者读写,所属组读,其他人读)
    第一个root:所有者
    第二个root:所属组
    34298:占用磁盘大小
    04-02 00:23:修改时间
    install.log:文件名称
    

    文件的特殊权限:
    Set UID
    SUID():可以让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的 二进制程序有效)
    所有的用户可以执行passwd修改自己的密码,而用户的密码保存在/etc/shadow
    中。你会发小/etc/shadow的权限为000,表示只有root能查看,但是使用 passwd命令是如果加上SUID特殊权限是,就可以让普通用户临时获得所有者的身 份,把变更密码的信息些人到shadow文件中
    如果原先权限位没有x执行权限,那么赋予特殊权限后变成大写的S
    例如:
    ls -l /etc/shadow
    //可以看到为-r——–
    ls -l /bin/passwd
    //-rwSr-xr-x

    SGID:
    1.让执行者有所属组的权限(仅对拥有执行权限的二进制程序有效)
    2.在某个目录中创建的文件自动继承该目录的用户组(只针对目录)
    
    假设一个文件权限为cr--r-----
    这里除了root和属于system组的成员外,其他人都没有读取该文件的权限
    
    当我们查看系统进程状态的ps命令文件上增加SGID特殊权限位时:
    ps命令文件属性信息:
    -r-xr-Sr-x
    这样,由于ps命令被增加了SGID特殊权限位,所以当用户执行该命令时,
    也获取到了system用户组的权限,可以读取设备文件了
    
    
    每个文件都有其归属的所有者和所属组,当创建或者是传送一个文件后
    这个文件就会自动归属于执行这个操作的用户(即该用户是文件的所有者)
    我们想要多个人都能读取到这个文件,那么可以在共享目录后,设置SGID
    特殊权限位。这样任何人创建的任何文件都属于该目录的所属组,不在是自
    己的基本用户组
    例如:
    cd /tmp
    mkdir testdir
    ls -ald testdir/
    drwxr-xr-x 2 root root 6 
    chmod -Rf 777 testdir/(改变权限任何人能读能写能执行)
    chmod -Rf g+s testdir/(添加特殊权限)
    ls -ald testdir/
    drwxrwsrwx
    
    测试:
    su - username
    cd /tmp/testdir
    echo "linux is my life!" > test
    ls -al test
    -rw-rw-r--
    
    chmod能够设置文件或者目录的权限 格式:chmod [参数] 权限 文件或者目录名
    例如:
    ls -al test
    -rw-rw-r--
    chmod 760 test
    ls -l test
    -rwxrw----
    
    chown能够设置文件或者目录的所有者和所属组
    格式:chown【参数】 所有者:所属组 文件或者目录名
    
    chmod和chown加上参数[-R]表示递归操作,对目录内所有的文件修改
    例如:
    ls -l test
    -rwxrw---- username root 
    chown root:bin test
    ls -l test
    -rwxrw---- root     bin 
    
    
    SBIT:能够确保用户只能删除自己的文件,而不能删除其他用户的文件
    当设置了SBIT就只能被所有者操作了
    当目录设置为SBIT特殊权限后,文件的其他人权限部分的x就会被替换为t或者是T     原本有x执行权限,则会写成t
    原本没有x执行权限,就会写成T
    例如:
    su - username
    ls -ald /tmp
    cd /tmp
    ls -ald
    echo "Welcome to linux" > test
    chmod 777 test
    ls -al test
    
    //现在尝试删除
    su - user1
    cd /tmp
    rm -f test
    //提示说不能被删除
    
    如果要对其他目录设置SBIT权限,用chmod就可以了
    对应参数o+t代表设置SBIT权限:
    exit
    cd ~
    mkdir linux
    chmod -R o+t linux/
    ls -ld linux/
    drwxr-xr-t 
    
    //补充
    4为SUID
    2为SGID
    1为SBIT
    操作:
    数字操作:
    cd /tmp
    touch test
    chmod 4755 test//加入SUID
    chmod 6755 test//加入SUID和SGID
    chmod 1755 test //加入SBIT
    字母操作:
    SUID:u+s
    SGID:g+s
    SBIT:o+t
    chmod g+s,o+t test;//加上SGID和SBIT
    
    技术不分国界
  • 相关阅读:
    JavaScript 正则表达式
    JavaScript类型转换
    JavaScript typeof
    JavaScriptBreak 语句 continue 语句
    JavaScript for循环 while循环
    JavaScript 条件语句
    JavaScript 事件
    JavaScript 作用域
    SP2010开发和VS2010专家"食谱"--第四章节—列表定义和内容类型(3)--使用对象模型创建自定义内容类型
    SP2010开发和VS2010专家"食谱"--第四章节—列表定义和内容类型(2)--拓展现有内容类型
  • 原文地址:https://www.cnblogs.com/angels-yaoyao/p/12443587.html
Copyright © 2011-2022 走看看