• linux用户和权限详解


    1.用户组说明

    在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组。
    基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组。
    附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
    用户不论为与基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本组。

    ##将user的加到隶属组group1
    usermod -G group1 user
     
    ##将user的主要组改为group2
    usermod -g group2 user

    2.赋予用户sudo权限

    linux下直接运行sudo命令,会提示类似:
    xxxis not in the sudoers file. This incident will be reported.
    这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决:

    进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
    编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。
    然后就行了。

     

    3.777,644,755等用户权限说明

    读取写入执行权限

    444 r–r–r–600 rw——-644 rw-r–r–666 rw-rw-rw-700 rwx——744 rwxr–r–755 rwxr-xr-x777 rwxrwxrwx

    三位数字代表9位的权限,分成3部分,第一部分3位表示所有者的权限,第二部分3位表示同组用户权限,第三部分3位表示其他用户权限,r代表读取权限等于4,w代表写入权限等于2,x代表执行权限等于1。

    比如777,第一位7等于4+2+1,所以就是rwx,所有者有读取、写入、执行的权限,第二位7也是4+2+1,rwx,同组用户具有读取、写入、执行权限,第三位7,代表其他用户有读取、写入、执行的权限。

    比如744,第一位7等于4+2+1,rwx,所有者具有读取、写入、执行权限,第二位4等于4+0+0,r–,同组用户只有读取权限、第三位4,也是r–,其他用户只有读取权限。

    Linux系统下经常遇到文件或者文件夹的权限问题,或者是因为文件夹所属的用户问题而没有访问的权限。根据我自己遇到的情况,对这类问题做一个小结。
    在命令行使用命令“ll”或者“ls -a”,可以查看文件或者文件的权限:

    -rw-r--r--. 1 root root 6 Nov  9 16:42 a.txt

    其中“-rw-r--r--”表示权限,一共有十个字符。

    第一个字符,如果是“-”则表示是文件,如果是“d”则表示是目录(directory)。

    后面9个字符每3个字符又作为一个组,则有3组信息(“rw-”、“r--”、“r--”),分别表示所属用户本身具有的权限、所属用户的用户组其他成员的权限、其他用户的权限。

    每一组信息如“rw-”,每一个字符都有它自己的特定含义且先后位置是固定的,其中r是读权限、w是写权限、x是可执行权限、-没有对应字符的权限。Linux里面对这些字符设置对应的数值,r是4,w是2,x是1,-是0。上面的“rw-”则是6(=4+2+0),所以最开始a.txt的权限是644,属于root用户组的root用户。

    4.修改权限chmod

    4.1文件的权限

    我想修改文件a.txt的权限为755,则为:

    [root@master my]# ll
    -rw-r--r--. 1 root root 6 Nov  9 16:42 a.txt #改之前权限是644
    [root@master my]# chmod 755 a.txt
    [root@master my]# ll
    -rwxr-xr-x. 1 root root 6 Nov  9 16:42 a.txt #改后权限是755

    4.2改文件夹的权限

    改之前:

    [root@master test1]# ll
    drw-r--r--. 2 root root 4096 Nov  9 16:42 my #改之前文件夹my的权限是644
    [root@master test1]# ll my/
    -rwxr-xr-x. 1 root root 6 Nov  9 16:42 a.txt #改之前文件夹my的里面的文件权限是755

    4.2.1只改变文件夹本身权限,不改动子文件(夹)

    执行命令修改my文件夹权限为600:

    [root@master test1]# chmod 600 my/  #修改命令
    [root@master test1]# ll
    drw-------. 2 root root 4096 Nov  9 16:42 my #改my文件夹之后权限是600
    [root@master test1]# ll my/
    -rwxr-xr-x. 1 root root 6 Nov  9 16:42 a.txt #改my文件夹之后里面的文件权限还是755,没有变化
    

    4.2.2改变文件夹及子目录下所有文件(夹)权限

    执行1.2.1步骤之后,my文件夹和里面的文件权限都是不同的。现在递归修改,都改为统一的权限777:

    [root@master test1]# chmod -R 777 my/ #修改命令,注意中间是大写的R,不是小写
    [root@master test1]# ll
    drwxrwxrwx. 2 root root 4096 Nov  9 16:42 my #修改后my文件夹权限是777
    [root@master test1]# ll my/
    -rwxrwxrwx. 1 root root 6 Nov  9 16:42 a.txt #修改后里面的文件变为了777

    5.修改所属用户和用户组chown

    这个和修改文件夹的权限是基本相同的,只不过是把chmod命令换成了chown。

    5.1修改文件所属用户和用户组

    修改a.txt文件所属用户(jay)和用户组(fefjay):

    chown jay:fefjay a.txt #修改文件所属用户为jay,所属用户组为fefjay

    5.2修改文件夹所属用户和用户组

    5.2.1只改文件夹本身所属用户和用户组,不改子文件(夹)

    仅修改文件夹my本身所属用户(jay)和用户组(fefjay):

    chown jay:fefjay my #修改文件所属用户为jay,所属用户组为fefjay

    5.2.2改变文件夹及所有子文件(夹)所属用户和用户组

    递归修改文件夹my及包含的所有子文件(夹)的所属用户(jay)和用户组(fefjay):

    chown -R jay:fefjay my #修改文件所属用户为jay,所属用户组为fefjay
  • 相关阅读:
    Python基础编程常用模块汇总
    博客目录
    网络编程
    python 对象
    python模块和规范开发
    python常用内置函数
    python递归函数和匿名函数
    python装饰器
    python迭代器,生成器,推导式
    python作用域
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/8323489.html
Copyright © 2020-2023  润新知