精华内容
下载资源
问答
  • 和属主同组用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的周详信息时,最左边的一列为文件的访问权限。 例一:$ ls -l sobsrc. tgz -rw-r–r– 1 root root 483997 ...

            每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;和属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的周详信息时,最左边的一列为文件的访问权限。

    例一:$ ls -l sobsrc. tgz

    -rw-r–r– 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz

    解释:横线代表空许可。r代表只读,w代表写,x代表可执行。注意这里共有10个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是个文件。如果第一个字符是横线,表示是个非目录的文件。如果是d,表示是个目录。

    文件权限的划分:属主user              同组用户group                 其他用户other

    对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户,即属主
    同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
    文件所有者以外的用户又可以分为文件所有者的同组用户其他用户
    因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限

    属主:文件属主具有读写权限。

    同组用户:文件的同组用户具有读写权限。组就是为了一些拥有共同属性而设立的,在那个组的用户都拥有一些共同的属性。

    其他用户:文件的其他用户具有权限。

           作为选择,我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读r)、2(写w)、1(执行x)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。

    chmod——改变一个或多个文件的存取模式。

    (1)字符修改法: chmod  g-w a.c    给a.c文件的同组用户去掉写权限。

    (2)数字修改法:chmod 777 a.c      将a.c文件的权限设置为属主、同组用户、其他用户都可读可写可执行。

    展开全文
  • 用户组权限

    2017-09-27 21:55:00
    用户创建时随用户创建的为基本,一个用户只能属于一个基本。 附加:类似windows中的,一个用户可以同时属于多个附加,这个权限,会累加给内的用户。 zhangsan用户——zhangsan基本 lisi用户...

    zhangsan用户——zhangsan基本组
    lisi用户————lisi基本组
    wangwu用户———wangwu基本组
    用户创建时随用户一同创建的组为基本组,一个用户只能属于一个基本组。

    附加组:类似windows中的组,一个用户可以同时属于多个附加组,这个组的权限,会累加给组内的用户。

    zhangsan用户——zhangsan基本组
    lisi用户————lisi基本组,zhangsan和wangwu的附加组
    wangwu用户———wangwu基本组

    lisi需要保持拥有lisi组权限的同时还拥有zhangsan和wangwu组的权限

    账户基本信息:/etc/passwd
    teacher❌500:500:teacher:/home/teacher:/bin/bash
    ① ② ③ ④ ⑤ ⑥ ⑦

    ①用户名
    ②密码占位符(以前密码是放这里的)
    ③该用户的UID号
    ④该用户基本组的GID号
    ⑤用户描述
    ⑥用户的家目录所在位置
    ⑦用户登录系统时的登录环境(/bin/bash就是登录系统的时候调入shell解释器)

    账户安全信息:/etc/shadow
    root:加密后的密码:14374: 0 :99999: 7 : : :
    ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨

    ①用户登录名
    ②密码(密码如果是!!,!开头的话代表账户禁用)
    ③用户上次修改密码的日期距离1970-1-1相差多少天
    ④密码最短使用期限,0代表无限
    ⑤密码最长使用期限,99999代表无限
    ⑥密码过期前(到达最长期限)7天提醒
    ⑦密码过期后宽限N天
    ⑧账户过期时间的日期距离1970-1-1相差多少天
    ⑨保留未使用

    创建用户的命令:useradd
    常用选项
    -u:指定 UID 标记号
    -d:指定宿主目录,缺省为 /home/用户名
    -e:指定帐号失效时间
    -g:指定用户的基本组名(或UID号)
    -G:指定用户的附加组名(或GID号)
    -M:不为用户建立并初始化宿主目录
    -s:指定用户的登录Shell

    创建用户zhangsan指定uid号为550,并且账户在2017-11-11号过期
    useradd -u 550 -e 2017-11-11 zhangsan

    使用-d选项时候的注意事项!!!!!!
    要求创建账户zhenglin,家目录位于/benet/zhenglin/
    错误操作
    mkdir /benet/zhenglin -p
    useradd -d /benet/zhenglin zhenglin

    要求创建账户maochen,家目录位于/benet/zhenglin/
    正确操作
    mkdir /benet/
    useradd -d /benet/maochen maochen

    结论:管理员只需要将包含用户家目录的上级目录创建,用户家目录是随创建用户时自动创建的。(只盖楼,不管单间装修)

    综合例句:
    1.指定mike的基本组为mike,并加入到ftpuser组
    2.指定主目录为/ftphome/mike
    3.不允许mike通过本地登录服务器
    mkdir /ftphome/
    useradd -g mike -G ftpuser -d /ftphome/mike -s /sbin/nologin mike

    每个用户家目录的样板目录/etc/skel
    该目录中的内容,会随用户创建被直接创建在用户家目录中

    例如在/etc/skel/中新建一个yuangong.txt
    那么新建用户的时候这个文件会自动出现在用户的家目录中

    设置用户安全信息:passwd
    允许用户空密码登录passwd -d zhangsan
    设定用户密码
    passwd lisi
    123.com回车
    123.com回车
    禁用账户
    passwd -l lisi
    启用账户
    passwd -u lisi

    修改已存在的用户属性:usermod
    除了-M,其他的选项同useradd
    -L:禁用账户
    -U:启用账户

    删除已存在的用户:userdel
    -r:抄家(删用户+删除家目录)

    转载于:https://www.cnblogs.com/guarderming/p/7604190.html

    展开全文
  • Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录一个系统执行各自不同的任务,而互不影响。 root :系统维护 www:网页修改 ...

    Linux常规操纵 : 多用户操作

    1.1 linux的用户与用户组理论

    1.1.1 概述

    Linux是一个真实的、完整的多用户多任务操作系统,多用户多任务就是可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。

            root :系统维护

            www:网页修改

            ftp:文件上传

            mysql:SQL查询

    不同用户具有不同的权限,每个用户是在权限允许的范围内完成不同的任务,linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。

     

    1.1.2 linux的用户分类

    1. root 用户(linux的超级管理员)

    拥有最高权限,可以登录系统,进行任何操作。

    2. 虚拟用户(某项技术运行期间需要的用户)

    这类用户也被称为伪用户或假用户,以与真实用户区分开来。这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的,而非后来添加的。

    3. 普通真实用户(我们可以操作的)

    这类用户等登录系统,权限有限,由管理员添加。

    注意 :  linux是区分用户进行各种操作的,也就是说如果你想做任何操作都是必须先登录某个用户才可以做相关的操作,所以我们想要操作linux必须有自己的用户!

    那怎么创建用户呢?

    1.1.3 linux的用户组

    Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

    每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。

    用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限。

    比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理。

    另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。

    说白了用户组就是对linux中同一类对象进行统一管理一种技术手段,将同一类用户放到一个组中去,封装成一个更大的整体;

    就好比 同一类学生封装到一个班级里面,学生就是用户,班级就是组;对班级进行操作其实就是对这个班级的所有学生的操作;

     

    1.1.4 用户与组的关系

    用户和用户组的对应关系有:一对一、一对多、多对一和多对多;下图展示了这种关系:

            

    一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。

    一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。

    多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。

    多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

     

    1.1.5 用户与组对linux的影响

    假如 我们现在有这么几个用户  zwm sjg wxh

    假设 zwm 和 sjg 用户 是 g1 组 wxh 是 g2 组

    我们用 zwm 用户 创建了一个文件 file1

    那么对于这个file1来说 就有 三种权限的设置

    1. User --> 文件所有者 完全权限 读 写 执行 4 2 1 = 7

    直接创建这个文件的用户(zwm),对这个文件享有很高的权限

    2. Group  --> 文件所有者同组权限 读

    这个用户所属组(g1组),与上面用户同组的用户对这个文件有什么样的操作权限

    3. Others --> 除文件所有者和所有者组之外那些个用 0

    其他用户(wxh),除了上面的用户和上面的组以外的其他人对这个文件有什么权限操作

    举个例子

    其中:

    天神:root 用户,无所不能。

    王大毛家:某个用户组

    王大毛:某个用户组中的用户

    王大毛房间的所有者是王大毛,里面的东西,其他人不能乱动,表示为所有者权限 (User)。

    王大毛家内公共区域三兄弟可以共享,表示为所有者同组权限(Group)。

    对于王大毛来说,张小猪就不是他们家的人,表示为所有者非同组权限(others)。

     

    1.2 linux的用户与用户组实战

    因为用户组与用户是一对多的关系,用户肯定是要从属于某个组的,所以我们先从用户组操作起来

    1.2.1 Linux用户组的CURD操作

    1.2.1.1 GR 组的查询

    1. 组信息的查询

    执行 : 

    [root@localhost ~]# cat /etc/group

    用户组的所有信息都存放在/etc/group文件中。此文件的格式是由冒号(:)隔开若干个字段,这些字段具体如下:

    组名:口令:组标识号:组内用户列表

    具体解释:

    组名:

        组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。

    口令:

        口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*,有口令默认是x。

        因为涉及到对组的管理所以linux的组也是有自己的密码的

    组标识号 主键ID(可以重复的):

        组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。别称GID.

    组内用户列表:

        是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

     

    2. 组密码的查询

    执行

    [root@localhost ~]# cat /etc/gshadow

    由冒号(:)隔开若干个字段,这些字段具体如下:

    用户组名:用户组密码:用户组管理者:支持的账号名称

    具体解释:

    用户组名:

            是用户组的名称,由字母或数字构成。

    用户组密码:

    这个段可以是空的或!,如果是空的或有!,表示没有密码。

    用户组管理者:

    这个字段也可为空,如果有多个用户组管理者,用,号分割。

    组成员:

    如果有多个成员,用,号分割。

    当你每次创建的时候 为了保证这个账户归属某个组 所以 创建一个账户的同时 / 创建一个与用户同名的组

    root 账户 root组

     

    1.2.1.2 GC 添加组

    groupadd

    语法 : 

    groupadd [选项] 组名

    命令功能:

    添加群组。

    选项和参数:

    -g GID:后面接某个特定的 GID ,用来直接给予某个GID;

    -h :显示此帮助信息并推出

    -r :创建一个系统群组。

    -o :允许创建有重复 GID 的组

     

    实例:

    1)创建一般群组(GID 从 1000 ! 1000以下代表是系统组)

    [root@localhost ~]# groupadd group1
    [root@localhost ~]# cat /etc/group | grep group1
    group1:x:1000:

    | N个命令的管道连接符 它的意义就是在于 将前一个命令的结果作为原始数据传入下一个命令 

    此处我们将 cat /etc/group 命令的执行结果 通过 | 传入给 grep 命令 grep命令的作用是在指定内容中查找给定的关键字,因为我们要用grep查找 group1 关键词 所以通过上面命令的执行将包含

    group1 关键词的那行查询出来;

     

    2)创建一个自定义GID的组名

    GID : 和我们之间数据库的主键ID一样,用来定位一个组的有效标识,但是linux的GID可以重复(使用-o 参数指定即可);

    GID的编号 : 0~999 传统上是保留给系统帐号使用。自定义的组是1000以上的,刚才我们创建的group1组的ID就是1000;

    [root@localhost ~]# groupadd -g 1003 group3
    [root@localhost ~]# cat /etc/group | grep group3
    group3:x:1003:

    此处需要注意一个问题,因为我们自定义的组ID已经指定到了1003 所以按照ID递进原则之后我们如果创建group3组的话ID不会是我们没有用到的1002 而是 1003+1 --> 1004

    [root@localhost ~]# cat /etc/group | grep group4
    group4:x:1004:

    3)创建系统群组

    [root@localhost ~]# groupadd -r sysop1
    [root@localhost ~]# cat /etc/group | grep sysop1
    sysop1:x:995:

    注意 系统群组的ID是 0-999 所以此处分配了一个 995的ID

    此时大家就要考虑一个问题了,如果系统保留ID用没了,但是我还是想创建系统群组怎么办呢?

    这个时候我们可以使用 -o 参数来设定GID相同的群组

    [root@localhost ~]# groupadd -r -o -g 995 sysop2
    [root@localhost ~]# cat /etc/group | grep sysop2
    sysop2:x:995:

     

    根据观察我们可以看出,sysop2和sysop1使用了相同的GID;

    1.2.1.3 GU 修改组

    groupmod

    命令格式:

    groupmod [选项] 组名

    命令功能:

    修改群组相关参数。

    选项和参数:

    -g GID :将组 ID 改为 GID

    -h :显示此帮助信息并推出

    -n NEW_GROUP :改名为 NEW_GROUP

    -o :允许使用重复的 GID

    实例:

    修改 sysop2 组的名称为 sysug1 并且修改这个组的ID为 996

    [root@localhost ~]# groupmod -g 996 -n sysug1 sysop2
    groupmod:GID “996”已经存在
    [root@localhost ~]# groupmod -g 997 -n sysug1 sysop2
    groupmod:GID “997”已经存在
    [root@localhost ~]# groupmod -g 998 -n sysug1 sysop2
    groupmod:GID “998”已经存在
    [root@localhost ~]# groupmod -g 999 -n sysug1 sysop2
    groupmod:GID “999”已经存在
    [root@localhost ~]# groupmod -g 994 -n sysug1 sysop2

    注意 系统的GID是很紧张的!

    1.2.1.4 GD 删除用户组

    groupdel

    命令格式:

    groupdel 组名

    命令功能:

    删除用户组时,用户组必须存在,如果有组中的任一用户在使用中的话,则不能删除。

    实例:

    删除群组名为 sysop1 sysug1 的群组和 

    [root@localhost ~]# groupdel sysop1
    [root@localhost ~]# groupdel sysug1

     

    1.2.2 Linux用户的CURD操作

    1.2.2.1 UR 用户查看

    执行 : 

    [root@localhost ~]# cat /etc/passwd

    是的,没有错,不要怀疑,这个就是查看用户信息的文件 叫 passwd

    内容如下

    内容说明 : 

    /etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下: 

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

    用户名:

    是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。

    口令:

    一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

    用户标识号:UID

    用户标识号(User ID),是一个整数,系统内部用它来标识用户。

    0是系统管理员账号,1-999是系统保留账号,1000+即一般账号。useradd 命名默认生成UID=1000。

    组标识号:GID

    GID:用户组标识号(Group ID),是一个整数,系统内部用它来标识用户组。

    注释性描述:

    字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。

    主目录:

    也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

    登录Shell:

    用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。

    查看用户密码可以执行 : 

    [root@localhost ~]# cat /etc/shadow
    

    用户(user)影子口令文件,存放账户密码相关信息。该文件的权限必须设置为:400 或者600,即:Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件。

    每行内容按:分隔。

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    登录名:

    是与/etc/passwd文件中的登录名相一致的用户账号

    口令:

    存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;   

    星号代表帐号被锁定;

    双叹号表示这个密码已经过期了。

    $6$开头的,表明是用SHA-512加密的,

    $1$ 表明是用MD5加密的

    $2$ 是用Blowfish加密的

    $5$ 是用 SHA-256加密的。 

    最后一次修改时间:

    表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。

    最小时间间隔:

    指的是两次修改口令之间所需的最小天数。

    最大时间间隔:

    指的是口令保持有效的最大天数。

    警告时间:

    字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

    不活动时间:

    表示的是用户没有登录活动但账号仍能保持有效的最大天数。

    失效时间:

    字段给出的是一个绝对的天数(1970年到现在的天数),如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    1.2.2.2 用户创建

    useradd

    命令格式:

    useradd [选项] 使用者账号名
    

    命令功能:

    用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

    选项和参数:

    -u UID: 直接指定一个特定的 UID 给这个账号;

    -g 初始群组名:该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。

    -G 附加群组名:后面接的组名则是这个账号还可以加入的附加群组。这个选项与参数会修改 /etc/group 内的相关资料。

    -M :强制!不要建立用户家目录!(系统账号默认值)

    -m :强制!要建立用户家目录!(一般账号默认值)

    -c 描述性字符串:注释性描述,这个就是 /etc/passwd 的第五栏的说明内容

    -d 目录:指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!一般情况下linux除了执行shell脚本之外 很少使用相对路径

    -r :建立一个系统的账号,系统账号不建立家目录;

    -s shell:后面接一个 shell ,若没有指定则预设是 /bin/bash

    实例

    1)创建一个最普通的账号(用户名 user1 用户描述 这个一个普通账户)

    [root@localhost ~]# useradd -c 这是一个最普通的账户 user1
    [root@localhost ~]# cat /etc/passwd | grep user1
    user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash

    此处我们需要关心的问题是 普通账户的UID起始是1000,那UID后面的 1005 的 GID是哪个组呢?我们查询一下

    [root@localhost ~]# cat /etc/group | grep 1005
    user1:x:1005:

    通过观察我们发现创建普通用户的时候还会创建一个按用户名命名的组,并且把该用户添加到了这个同名的组里面

    如果是这样的话,我们想在创建用户的时候指定组该怎么办呢?此时可以用 -G 和 -g 参数

    2)创建一个账户归属 GID=1000 的用户组

    [root@localhost ~]# useradd -g 1000 user2
    [root@localhost ~]# useradd -g group1 user3
    [root@localhost ~]# cat /etc/passwd | grep user*
    user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash
    user2:x:1001:1000::/home/user2:/bin/bash
    user3:x:1002:1000::/home/user3:/bin/bash

    上面的代码我们可以用-g 来初始化用户的组 -g 后面加需要归属的 组的 ID 和 名称 都可以

    那么既然已经设置了基础组还会创建用户同名组么?

    [root@localhost ~]# cat /etc/group | grep user*
    users:x:100:
    user1:x:1005:

    通过观察我们发现并没有!

    3)创建一个账户归属自己同名组并归属 GID为1000的组

    [root@localhost ~]# useradd -G 1000 user4
    [root@localhost ~]# useradd -G group1 user5 
    [root@localhost ~]# cat /etc/passwd | grep user*
    user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash
    user2:x:1001:1000::/home/user2:/bin/bash
    user3:x:1002:1000::/home/user3:/bin/bash
    user4:x:1003:1006::/home/user4:/bin/bash
    user5:x:1004:1007::/home/user5:/bin/bash

    通过观察我们可以发现上面的user4 和 user5 有两个不同的GID为 1006 和 1007

    那么它归属 GID=1000的组了么?我们查查看

    [root@localhost ~]# cat /etc/group | grep -E '1000|1006|1007'
    group1:x:1000:user4,user5
    user4:x:1006:
    user5:x:1007:

    通过观察我们发现 group1 GID=1000 这个组里添加了user4和user5两个用户

    并且系统也帮助我们创建了以user4和user5命名的组

    这个就是附加! -G

    4)创建一个系统账户

    [root@localhost ~]# cat /etc/passwd | grep sysuser1
    sysuser1:x:997:995::/home/sysuser1:/bin/bash

    此处我们可以发现 UID是 997(1000以下) GID 995

    [root@localhost ~]# cat /etc/group | grep 995
    sysuser1:x:995:
    

    5)创建一个不能使用shell 并且要设置用户的家目录到其他位置

    [root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user1 -c 一个特殊的普通用户 nologinuser1
    useradd:无法创建目录 /userhome/user1
    [root@localhost ~]# mkdir -p /userhome/user1 创建这个目录 
    [root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user1 -c 一个特殊的普通用户 nologinuser1
    useradd:用户“nologinuser1”已存在
    [root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user1 -c 一个特殊的普通用户 nologinuser2
    useradd:警告:此主目录已经存在。
    不从 skel 目录里向其中复制任何文件。 
    [root@localhost ~]# useradd -s /sbin/nologin -d /userhome/user3 -c 一个特殊的普通用户 nologinuser3
    
    [root@localhost ~]# ll /userhome/
    总用量 0
    drwxr-xr-x. 2 root         root          6 5月  30 16:47 user1
    drwx------. 2 nologinuser3 nologinuser3 62 5月  30 16:47 user3
    
    [root@localhost ~]# cat /etc/passwd | grep nologinuser*
    nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin
    

    此处需要注意 : 用户的默认家目录在 /home/用户名 这个目录里

    举个例子 : 我创建了一个user 叫user1

    那么这个用户的家目录 对应应该就是 /home/user1

    那么问题来了 --> 什么是家目录呢?

    家目录 和 windows中用户的我的文档类似 用户登陆成功进入的第一个目录就是自己得家目录;

    家目录对于用户来说 用户具有最大的管理权限 所以家目录对于用户来说 是 700 权限的;

    那啥是700权限呢? 不着急我们一会再说,此处我们主要还是针对用户操作;

    useradd user1

    1.2.2.3 UU 用户修改

    usermod

    命令格式:

    usermod [选项] 使用者账号名
    

    命令功能:

    usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。

    选项和参数:

    -c 备注:修改用户帐号的备注文字; 

    -d 家目录:修改用户登入时的主目录,前提:已存在要修改的家目录; 

    -g 初始群组:修改用户所属的群组; 

    -G 附加群组;修改用户所属的附加群组; 

    -h:显示帮助信息;

    -l 帐号名称 :修改用户帐号名称; 

    -s shell:修改用户登入后所使用的shell; 

    -u UID:修改用户ID;

    实例:

    1)将现有用户添加到现有组中

    [root@localhost ~]# cat /etc/passwd | grep user1
    user1:x:1000:1005:这是一个最普通的账户:/home/user1:/bin/bash 
    sysuser1:x:997:995::/home/sysuser1:/bin/bash
    nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    [root@localhost ~]# cat /etc/group | grep 1005
    user1:x:1005:
    [root@localhost ~]# usermod -g group1 user1
    [root@localhost ~]# cat /etc/passwd | grep user1
    user1:x:1000:1000:这是一个最普通的账户:/home/user1:/bin/bash
    sysuser1:x:997:995::/home/sysuser1:/bin/bash
    nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    

    上面的操作可以观察到之前user1的GID 是1005 修改了之后变成了 1000

    2)修改用户名 

    [root@localhost ~]# usermod -l userop1 -c 'web管理员' user1
    [root@localhost ~]# cat /etc/passwd | grep user*
    user2:x:1001:1000::/home/user2:/bin/bash
    user3:x:1002:1000::/home/user3:/bin/bash
    user4:x:1003:1006::/home/user4:/bin/bash
    user5:x:1004:1007::/home/user5:/bin/bash
    sysuser1:x:997:995::/home/sysuser1:/bin/bash
    nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin
    userop1:x:1000:1000:web管理员:/home/user1:/bin/bash
    

    修改了用户名 顺便也修改了备注信息

    3)修改用户的家目录位置

    [root@localhost ~]# cat /etc/passwd | grep userop1
    userop1:x:1000:1000:web管理员:/home/user1:/bin/bash
    [root@localhost ~]# usermod -d /userhome/user4 userop1
    [root@localhost ~]# cat /etc/passwd | grep userop1
    userop1:x:1000:1000:web管理员:/userhome/user4:/bin/bash

    4)修改用户的登录密码

    passwd

    命令格式:

    passwd [选项] [使用者账号名]
    

    命令功能:

    passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

    root用户可以设置及修改其他用户的密码,普通修改自己的密码。

    选项:

    -d:删除密码,仅有系统管理者才能使用; 

    -f :强制执行; 

    实例:

    因为useradd的用户并没密码可以通过此命令进行设置

    1) 修改管理员密码

    [root@localhost ~]# passwd
    更改用户 root 的密码 。
    新的 密码:
    无效的密码: 密码是一个回文
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

    passwd 如果不带参数就是修改当前用户的,所以root身份登录修改的也是root的密码,此处需要注意当你在输入密码的时候是不会显示密码的

    2) 修改其他用户密码

    [root@localhost ~]# passwd userop1
    更改用户 userop1 的密码 。
    新的 密码:
    无效的密码: 密码是一个回文
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [root@localhost ~]# passwd -f userop1
    更改用户 userop1 的密码 。
    新的 密码:
    无效的密码: 密码是一个回文
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    

    切换验证

    [root@localhost ~]# su - userop1
    su: 警告:无法更改到 /userhome/user4 目录: 没有那个文件或目录
    -bash-4.2$ ll
    ls: 无法打开目录.: 权限不够
    -bash-4.2$ cd /
    -bash-4.2$ ll
    总用量 16
    lrwxrwxrwx.   1 root root    7 5月  30 12:25 bin -> usr/bin
    dr-xr-xr-x.   5 root root 4096 5月  30 12:28 boot
    drwxr-xr-x.  20 root root 3220 5月  30 12:29 dev
    drwxr-xr-x.  74 root root 8192 5月  30 17:14 etc
    drwxr-xr-x.   7 root root   71 5月  30 16:36 home
    lrwxrwxrwx.   1 root root    7 5月  30 12:25 lib -> usr/lib
    lrwxrwxrwx.   1 root root    9 5月  30 12:25 lib64 -> usr/lib64
    drwxr-xr-x.   2 root root    6 4月  11 2018 media
    drwxr-xr-x.   2 root root    6 4月  11 2018 mnt
    drwxr-xr-x.   2 root root    6 4月  11 2018 opt
    dr-xr-xr-x. 112 root root    0 5月  30 12:29 proc
    dr-xr-x---.   2 root root  114 5月  30 12:28 root
    drwxr-xr-x.  23 root root  720 5月  30 12:29 run
    lrwxrwxrwx.   1 root root    8 5月  30 12:25 sbin -> usr/sbin
    drwxr-xr-x.   2 root root    6 4月  11 2018 srv
    dr-xr-xr-x.  13 root root    0 5月  30 12:29 sys
    drwxrwxrwt.   8 root root  211 5月  30 14:05 tmp
    drwxr-xr-x.   4 root root   32 5月  30 16:47 userhome
    drwxr-xr-x.  13 root root  155 5月  30 12:25 usr
    drwxr-xr-x.  19 root root  267 5月  30 12:29 var
    -bash-4.2$ su - root
    密码:
    上一次登录:四 5月 30 12:31:03 CST 2019从 192.168.92.1pts/0 上
    

    用户自己改密码

    -bash-4.2$ passwd
    更改用户 userop1 的密码 。
    为 userop1 更改 STRESS 密码。
    (当前)UNIX 密码:
    新的 密码:
    重新输入新的 密码:
    抱歉,密码不匹配。
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。

    用户自己修改密码的时候必须遵守密码修改原则

    1. 先输入当前密码验证

    2. 新密码要求由数字和字母组成长度要大于8位

    3. 密码中要包含大小写字母

    所以自己修改密码的时候还是要花费一定经历的

     

    1.2.2.4 UD 用户删除

    userdel

    命令格式:

    userdel [选项] 使用者账号名
    

    命令功能:

    userdel删除一个用户账号和相关的文件。 userdel命令修改系统账号文件/etc/passwd,删除所有条目有关用户登录名。该用户名必须存在。

    选项和参数:

    -f,--force  该选项强制删除用户账号,即使该用户仍在登录。

    -r, --remove  在用户家目录里面的文件将被删除并且家目录本身和用户的邮件池也会被删除。文件位于其他文件系统的必须手动搜索和删除。

    建议不要用 -r 直接删除,用普通删除,家目录先保留一段时间,然后在手动删除,以免家目录内的文件找不回来。

    实例:

    删除指定的用户

    [root@localhost ~]# cat /etc/passwd | grep user
    user2:x:1001:1000::/home/user2:/bin/bash
    user3:x:1002:1000::/home/user3:/bin/bash
    user4:x:1003:1006::/home/user4:/bin/bash
    user5:x:1004:1007::/home/user5:/bin/bash
    sysuser1:x:997:995::/home/sysuser1:/bin/bash
    nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin
    userop1:x:1000:1000:web管理员:/userhome/user4:/bin/bash
    [root@localhost ~]# userdel userop1
    userdel: user userop1 is currently used by process 9251

    上面提示userop1 正在使用不能删除;

    那么要是就想删呢?

    [root@localhost ~]# userdel -rf userop1
    userdel: user userop1 is currently used by process 9251
    userdel:未找到 userop1 的主目录“/userhome/user4”
    [root@localhost ~]# cat /etc/passwd | grep user
    user2:x:1001:1000::/home/user2:/bin/bash
    user3:x:1002:1000::/home/user3:/bin/bash
    user4:x:1003:1006::/home/user4:/bin/bash
    user5:x:1004:1007::/home/user5:/bin/bash
    sysuser1:x:997:995::/home/sysuser1:/bin/bash
    nologinuser1:x:1005:1008:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser2:x:1006:1009:一个特殊的普通用户:/userhome/user1:/sbin/nologin
    nologinuser3:x:1007:1010:一个特殊的普通用户:/userhome/user3:/sbin/nologin

    强制删除了userop1

    注意 : linux没有回退功能,所以删除了就是删除了,就再也找不回来了!

     

    1.2.3 Linux群组管理员功能

    gpasswd

    gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow管理工具。

    命令格式:

    gpasswd [选项] 要管理的工作组

    命令功能:

    管理群组。

    选项:

    -a 用户:添加用户到组; 

    -d 用户:从组删除用户; 

    -A 用户:指定管理员; 

    -h:帮助信息;

    -r:删除密码; 

    实例:

    1) 给组设置密码

    [root@localhost ~]# gpasswd group1
    正在修改 group1 组的密码
    新密码:
    请重新输入新密码:

    1)指定组的管理员

    [root@localhost ~]# gpasswd -A user4 group1

    2)添加新用户到组

    [root@localhost ~]# su - user4
    [user4@localhost ~]$ gpasswd -a user2,user3 group1
    gpasswd:用户“user2,user3”不存在
    [user4@localhost ~]$ gpasswd -a user2 group1
    正在将用户“user2”加入到“group1”组中
    [user4@localhost ~]$ gpasswd -a user3 group1
    正在将用户“user3”加入到“group1”组中
    [user4@localhost ~]$ cat /etc/group | grep group
    group1:x:1000:user4,user5,user2,user3
    group3:x:1003:
    group4:x:1004:
    

    3)将用户移出组

    [user4@localhost ~]$ gpasswd -d  user2 group1
    正在将用户“user2”从“group1”组中删除
    [user4@localhost ~]$ cat /etc/group | grep group1
    group1:x:1000:user4,user5,user3

    1.3 linux的用户相关命令

    1.3.1 id 命令 查看用户信息

    命令格式:

    id [选项][用户名称]
    

    命令功能:

    id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。

    id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。

    选项:

    -g 显示用户所属群组的ID。 

    -G 显示用户所属加群组的ID。   

    --help   显示帮助。 

    实例:

    1)查看当前信息

    [user4@localhost ~]$ id
    uid=1003(user4) gid=1006(user4) 组=1006(user4),1000(group1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    2) 查看其他用户

    [root@localhost ~]# id user2
    uid=1001(user2) gid=1000(group1) 组=1000(group1),1003(group3)
    [root@localhost ~]# id -g user2
    1000
    [root@localhost ~]# id -G user2
    1000 1003
    

    1.3.2 su 命令  用户切换

    命令格式:

    su [-] [要切换的用户名称]
    

    命令功能:

    su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

    选项:

    - :切换用户后,环境变量也切换成用户的环境变量;

    不加- :切换用户,不切换环境变量

    实例:

    1)切换到目标用户

    su - 会随着用户的切换环境变量

    su  不会随着用户的切换环境变量

    [root@localhost ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    [root@localhost ~]# su - user4
    上一次登录:四 5月 30 17:33:47 CST 2019pts/0 上
    [user4@localhost ~]$ echo $PATH
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user4/.local/bin:/home/user4/bin
    [user4@localhost ~]$ su root
    密码:
    [root@localhost user4]# echo $PATH
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user4/.local/bin:/home/user4/bin
    [root@localhost user4]# su - root
    上一次登录:四 5月 30 17:49:57 CST 2019pts/0 上
    [root@localhost ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

     

     

     

     

     

     

    展开全文
  • 普通用户chilllyn和tom同属testgroup,且两个人同时把各自的用户文件夹组权限设置成为了rwx,这时,tom尝试进入chilllyn的文件夹,被提示"Permission denied"。 接下来,我们再来仔细看: 虽然chilllyn和tom两人...

    初学Linux的同学可能会遇到下面这种情况:
    在这里插入图片描述
    普通用户chilllyn和tom同属组testgroup,且两个人同时把各自的用户文件夹组权限设置成为了rwx,这时,tom尝试进入chilllyn的文件夹,被提示"Permission denied"。

    接下来,我们再来仔细看:

    在这里插入图片描述
    虽然chilllyn和tom两人同属组testgroup,但是两个人的用户文件夹从属的组从上图可以看出,是属于用户创建时,系统自动为其创建的用户组。由此我们可知,文件夹或者文件的组是归属创建文件/文件夹时用户的组。

    这时我们可以通过命令 chgrp 目标组 被修改组的文件修改文件夹的组,如图中 chgrp testgroup tom将tom的用户文件夹的组修改为testgroup,这时chilllyn再去访问tom文件夹,则可以正确访问。

    当然也可以不修改文件夹的组,分别将两人加入对方的用户组,或者将other权限设置为rwx也是可以的。

    展开全文
  •  用户用户组的关系:每一个用户都属于一个用户组(若新建用户时不指定用户组的话,默认会自动创建一个与用户名相同的用户组),同用户组用户之间共享资源、文件,但无法打开其他用户的私有资源以及权限。...
  • 文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限同组用户的写权限,下列哪个命令是对的? 正确答案: A 你的答案: C (错误) chmod a+x g+w exer1 chmod g+w exer1 chmod 765 ...
  • 1、先以管理员身份创建两个测试用户:test001,test002。 [root@cent home]# useradd test001 [root@cent home]# useradd test002 移动到/home文件夹下用# ll命令查看,是否有与新建用户对应的同名文件夹 ...
  • 在hadoop中有时候会需要一个组中的多个用户都能够有权限操作,比如nutch和hadoop的结合中,一个nutch用户负责爬取,hadoop用户负责维护文件...将改变/user下面的所有文件为同组用户读写执行 方法二: 修改hdf...
  • linux用户组权限

    2016-07-06 09:48:15
    前提:解决例如root下执行的程序中有写文件操作,换用户执行程序后出现文件写权限不够的解决办法 ... 之后递归将文件夹权限设置成775,也就是同组用户可以写。默认775,同组不能写 ps:查看xxx用户所在的
  • 1、Linux下系统允许一个时刻多个用户同时登陆,创建用户,对用户进行管理,可以避免因root权限过大,造成故障。 2、用户密码存放的位置 用户信息都是存在/etc/passwd,但是没有存密码,密码是存在/etc/shadow中 ...
  • 用户,用户组,角色和权限

    千次阅读 2017-08-23 17:07:32
    1、用户User:最终操作人员,权限的最终受益者,控制权限控制权限实际上就是控制用户权限,而不是角色或者用户组权限 2、用户组UserGroup:是相对垂直而言的。比如说采购部这个用户组实际上是由采购部的业务员...
  • 用户权限管理

    2015-12-12 21:28:18
    用户权限管理一、用户的概念1、理解Linux多用户,多任务的特性Linux是一个真实的、完整的多用户多任务的操作系统,多用户多任务就是在系统上建立多个用户,而多个用户可以在一时登入操作系统执行各自任务...
  • 目录一、Linux系统用户/用户组权限相关二、Linux系统文件权限相关 一、Linux系统用户/用户组权限相关 1.命令:usermod ... '-G' 把用户追加到某些中,仅和-a选项一使用 '-g' 修改用户的gid '-...
  • ... 如下图: !... ...这个文件是文件主是lqftp2,文件属组是root,那么这个文件的所有者同组用户是指lqftp2下的所有...在这里到底是(文件所有者同组用户)的权限,还是该文件属组下的所有用户的权限?还是其他什么??
  • 由于Linux是一个多人多任务的系统,因此经常会出现一台机器同时有多个人进行操作,为了考虑每个人的隐私权以及每个人喜好的工作环境,所以文件的权限归属就至关重要。 为了保障系统的安全性和文件的隐私性,一...
  • linux用户权限管理

    千次阅读 2015-06-02 14:14:56
    2、3、4个字符表示所有者权限,5、6、7个字符表示所有者同组用户权限,8、9、10为其他用户权限 第二个字符表示所有者读权限,如果有权限则为r,没有权限则为- 第三个字符表示所有者写权限,如果有权限则为
  • Windows用户组管理和权限基础概述

    千次阅读 2019-07-11 22:05:52
    2、用户管理创建用户、为用户重置密码、重命名用户、启用、禁用用户帐户删除用户帐户(删除用户后再创建同名用户也不具有以前用户权限,因为SID安全标识符不同) 二、内置用户帐户用于特殊用途,一般不需更改...
  • 同组用户,最先起到什么作用这个我也是不明白的, 然后乱搞了一堆, 下面我做个笔记帮组日后分析。 一个用户组承载多个用户, 像这样 这是我原先的思路。然后就是chenglee用户和chenglee12是拥有同样权限的, 就是...
  • 文章目录首先我们先创建一个用户查看用户群组使用root用户查看...当其他用户没有执行权的时候是进入不了目录工作的下来测试同组没有执行权返回root用户修改权限learn只有可读,没有执行权限,然后切换到test用户访问...
  • 练习:完成以下任务 1、新建系统mariadb, 新建系统用户mariadb, 属于mariadb... 2、新建GID为5011的nebulaedu,新建用户gentoo1,要求其家目录为/users/gentoo,密码用户名; 3、新建用户fedora,其家目录...
  • 文章目录一、 用户帐户管理二、 内置用户帐户三、 管理帐户四、 ALP规则五、文件系统概述六、 常见NTFS权限七、NTFS权限规则八、 创建共享文件夹 一、 用户帐户管理 1、 用户帐户 不同的用户身份拥有不同的权限...
  • Ranger中的权限管理  Ranger可以将权限提供给用户用户组,角色。设置界面如下: 用户管理界面同上:  如图,用户分为内部用户(Internal)和外部用户...同用户一样,用户组也分为外部用户组和内部用户组,外
  • //添加用户(如果创建用户不带参数,系统会根据默认值创建用户及同名用户组,并在HOME目录里创建名家目录,默认的登录shell为/bin/bash) useradd sdl //查看系统中有没有该用户 cat /etc/passwd |grep sdl 第...
  • 1 ,新建三个用户 :xiaohei,xiaoma,xiaozhi 2 ,新建两个小组 :shanghai ,beijing 3 ,分组情况 :小黑和小马都属于上海小组...5 ,给文件 xiaohei.txt 赋予权限:拥有者权限(可读可写),拥有者的小组成员(只...
  • 1、修改文件所属用户和组(以root为例)chown -R root:root [wenjian]2、修改文件权限chmod -R 777 [wenjian]数字 读r(w):4写(r):2操作(x):1rwxrwxrwx 1~3 代表文件所有者 权限4~6 代表文件同组用户 权限7~...
  • Linux下如何让同组的用户删除自己创建的文件? 如何提高同组用户的删除权限呢? 要求: 1.不用root权限 2.不修改文件拥有者 请个位大侠帮帮!再次先谢谢了!
  • 用户权限

    2021-01-31 16:00:06
    2.即使创建的用户的主是0和root属于一个,同样没有root权限 3.把UID改成0,则xuegod3用户拥有了root权限 4.此时退出xuegod3用户,回到root用户,使用userdel -r xuegod3删除,无法删除,会出现如下提示 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,139
精华内容 855
关键字:

同组用户权限