【linux_笔记】Linux_组管理命令和权限管理命令

学习资源来自:www.magedu.com

学习记录过程中难免出现错误,如有发现,还望大神们指出。

示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行。示例仅供参考。(练习题在附录)


组管理:groupadd, groupdel, groupmod, gpasswd


    groupadd:创建组
        -g GID:指定GID
        -r:添加为系统组
        示例:
            groupadd -r nginx ―― 指定为系统组
            tail -1 /etc/group
        
    groupmod:修改组属性
        -g GID
        -n GRPNAME:修改组名

    groupdel:删除组

    gpasswd:为组设定密码

    newgrp GRPNAME <--> exit:临时切换指定组为当前用户的基本组,
    如果该指定组为当前用户的附加组则不需要输入密码。
    示例:
        文件的属组是创建该文件用户的基本组:
            gpasswd mygroup
                redhat
                redat
            useradd hadoop
            su - hadoop
            cd /tmp
            touch a.hadoop
            ls -l ―― a.hadoop的属组为hadoop
            id
        临时切换用户基本组:
            newgrp mygroup ―― hadoop的基本组切换为mygroup
                redhat
            id
            touch b.hadoop
            ls -l ―― 由于基本组切换为mygroup,所以b.hadoop属组为mygroup
            exit
            id
        
权限管理:如何改变一个文件的属主、属组以及其它用户的权限

    chown: 改变文件属主、属组(只有管理员可以使用此命令)
    # chown USERNAME file,...
        -R: 修改目录及其内部文件的属主、属组
        --reference=/path/to/somefile file,...:参考
            将file的属主、属组设定为与指定路径下的文件一样
        同时修改属主,属组:
            chown USERNAME:GRPNAME file,...
            chown USERNAME.GRPNAME file,...
        示例:
            tail /etc/passwd
            ls -l /tmp/abc(tmp下事先已经存在abc)            
            chown hadoop /tmp/abc ―― 修改文件abc的属主
            ls -l /tmp/abc
            ls -ld /tmp/hi
            chown hadoop /tmp/hi ―― 修改目录hi的属主,但hi目录里的文件属主不变
            ls -ld /tmp/hi
            ls -l /tmp/hi ―― 内部文件的属主未改变
            chown -R hadoop /tmp/hi
            ls -ld /tmp/hi
            ls -l /tmp/hi ―― 内部文件的属主也改变了
            ls -l /tmp
            chown --reference=/tmp/abc /tmp/test
            ls -l /tmp ―― test和abc的属主一样
            
    chgrp:只改变文件属组(只有管理员可以使用此命令),用法和chown一样
    # chgrp GRPNAME file,...
        -R
        --reference=/path/to/somefile file,...
        示例:
            chgrp mygroup /tmp/abc ―― 修改文件abc的属组为mygroup
            ls -l /tmp
            chgrp -R mygroup /tmp/hi ―― 修改目录hi及其中的内容属组为mygroup
            ls -ld /tmp/hi
            ls -l /tmp/hi
            chown root:root /tmp/abc ―― 同时修改abc的属主、属组为root
            ls -l /tmp/abc
            chown :hadoop /tmp/abc ―― 只改属组
            ls -l /tmp/abc
            ls -l /tmp/test
            chown --reference=/tmp/abc /tmp/test
            ls -l /tmp/test
            ls -l /tmp
            
    chmod: 修改文件的权限


        修改三类用户的权限:
            chmod MODE file,...:(如果MODE位数(8进制)不够,系统会自动在MODE前面补0)
                -R
                --reference=/path/to/somefile file,...
                示例:
                    将abc的权限rw-r--r--(644)修改为rwxr-x---(750)
                        chmod 750 /tmp/abc
                        ls -l /tmp/abc
                        chmod 75 /tmp/abc ―― 相当于075
                        ls -l /tmp/abc
                        ls -l /tmp/test
                        chmod --reference=/tmp/test /tmp/abc
                        ls -l /tmp/abc ―― abc的权限和test的一样

        修改某类用户或某些类用户权限:u,g,o,a(所有类别)
            chmod 用户类别=MODE file,... (MODE可以省略,省略的权限视为没有权限)
            示例:
                ls -l /tmp/abc
                chmod u=rwx /tmp/abc ―― 修改abc的属主权限为rwx
                ls -l /tmp/abc
                chmod g=7 /tmp/abc ―― 无法执行
                chmod g=rw /tmp/abc
                !ls
                chmod o=rw /tmp/abc
                !ls
                chmod g=r,o=r /tmp/abc
                !ls
                chmod go=rw /tmp/abc
                !ls

        修改某类用户的某位或某些位权限: u,g,o,a
            chmod 用户类别+|-MODE file,...
            示例:
                chmod u-x /tmp/abc ―― 去除属主的执行权限
                chmod u+x,g-r /tmp/abc
                ls -l /tmp/abc
                chmod a+x /tmp/abc ―― 三类用户同时添加执行文件,a可以省略
                !ls
    
        管理员和普通用户在同一路径下建立文件或目录,它们的权限不同。
            umask:遮罩码(默认管理员022,普通用户002)
                umask :查看遮罩码
                umask 022 :设置遮罩码        
            666-umask = 新建文件权限
            777-umask = 新建目录权限
            文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1;
                umask: 023
                文件:666-023=643 X
                目录:777-023=754
                
        注:所有权限的设定对管理员都没用,管理员有最高权限
            ls -l /etc/shadow
            ls -l `which passwd` ―― s->使得普通用户能够修改密码




你可能感兴趣的:(权限管理,chmod,组管理,修改文件的权限,umask遮罩码)