zoukankan      html  css  js  c++  java
  • linux之用户组和文件权限

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    每个用户账号都拥有一个惟一的用户名和各自的口令。

    用户组

    在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念

      - 所有者

      - 所在组

      - 其它组

      - 改变用户所在的组

     

    所有者

    一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者

    用ls ‐ahl命令可以看到文件的所有者

    也可以使用chown 用户名 文件名来修改文件的所有者

     

    文件所在组

    当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

    用ls ‐ahl命令可以看到文件的所有组

    也可以使用chgrp 组名 文件名来修改文件所在的组

     

    其它组

    除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

    文件权限

      ls -l

    drwxrwxr-x 4 root root 4096 6月  24 13:20 test

    - 10个字符确定不同用户能对文件干什么

    - 第一个字符代表文件(-)、目录(d),链接(l:表示这是一个符号链接文件,实际上它指向另一个文件)

    - 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

    - 第一组rwx:文件所有者的权限是读、写和执行

    - 第二组rwx:用户组的权限是读、写和执行

    - 第三组r-x:不与文件所有者同组的其他用户的权限是读和执行,但不能写

    也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7

    - 4 表示连接的文件数

    - root 表示用户

    - root表示用户所在组

    - 4096 表示文件大小(字节)

    - 6月 24 13:20 表示最后修改日期

    - test 表示文件名

     

    文件的权限的更改  

    chmod  [u|g|o|a] filename [-R]
    -R 是递归遍历子目录

    u代表ueser    g代表group    o代表其他用户       a代表all

    chmod 改变文件或目录的权限

    chmod 755 abc:赋予abc权限rwxr-xr-x

    chmod  u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限(注意: u=rwx,g=rx,o=rx 三个是连在一起的)

    chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限

    chmod a+r abc:给所有用户添加读的权限

    chmod   a+x  auth.log              #含义为 给 auth.log 文件赋予所有者可执行权限 

    chmod 777 auth.log                 #含义为给auth.log文件赋予任何可读,可写,可执行权限

    chmod mysql auth.log            #含义为 把 文件 auth.log 的所有者更改为 mysql

    chgrp  -R  mysql  apache2     #含义为 ,把 目录apache2 的所在组更改为mysql

     

    改变所有者(chown)和用户组(chgrp)命令

    chown xiaoming abc:改变abc的所有者为xiaoming

    chgrp root abc:改变abc所属的组为root

    chown root ./abc:改变abc这个目录的所有者是root

    chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

     

    改变用户所在组

    在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

    - usermod ‐g 组名 用户名

    你可以用

    - usermod ‐d 目录名 用户名,改变该用户登录的初始目录

    综合案例

    【题1.1】建立两个用户组group1和group2,以及三个用户dennis、daniel、abigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下

     

    【题1.2】以dennis用户登录,创建一个Hello.java文件

    【题1.3】以daniel用户登录,观察是否可以访问/home/dennis目录以及读或写其创建的Hello.java文件

    【题1.4】以dennis用户登录,修改目录/home/dennis及Hello.java文件的读写权限(更正:修改目录权限的时候,应该使用770,而不是760,否则权限不足)

     

    【题1.5】重复【题1.3】

    【题1.6】改变abigale的用户组由group2变为group1

     

    然后,可以使用cat /etc/passwd查看并确定

     

    【参考】

    - groupadd 组名,在linux中添加组

    - vi /etc/group,查看linux中所有组信息,可以看可以编辑

    - cat /etc/group,查看linux中所有组信息,只可以看不可以编辑

    - useradd ‐g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下

    - vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑

    - cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑

    ---------------------------------------------------------------------------------------------------------

    参考文档:http://www.runoob.com/linux/linux-user-manage.html

  • 相关阅读:
    leetcode 131. Palindrome Partitioning
    leetcode 526. Beautiful Arrangement
    poj 1852 Ants
    leetcode 1219. Path with Maximum Gold
    leetcode 66. Plus One
    leetcode 43. Multiply Strings
    pytorch中torch.narrow()函数
    pytorch中的torch.repeat()函数与numpy.tile()
    leetcode 1051. Height Checker
    leetcode 561. Array Partition I
  • 原文地址:https://www.cnblogs.com/qinfei0967/p/7071988.html
Copyright © 2011-2022 走看看