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

  • 相关阅读:
    [JLOI2015] 管道连接
    【知识点】斯坦纳树
    [ZJOI2010] 网络扩容
    【知识点】网络流常见模型
    [NOI2009] 植物大战僵尸
    [NOI2007] 货币兑换
    【知识点】分治相关算法
    [NOI2005] 月下柠檬树
    [HNOI2012] 射箭
    [SDOI2014] 向量集
  • 原文地址:https://www.cnblogs.com/qinfei0967/p/7071988.html
Copyright © 2011-2022 走看看