• Linux创建删除用户,创建删除组,设置目录所有权,设置目录wre权限


    用户

    1、增加用户,并指定主目录

    # useradd –d /usr/sam -m sam
    此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
    
    假设当前用户是sam,则下面的命令修改该用户自己的口令:
    # passwd
    Old password:******
    New password:*******
    Re-enter new password:*******
    
    如果是超级用户,可以用下列形式指定任何用户的口令:
    # passwd sam
    New password:*******
    Re-enter new password:*******
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2、修改密码

    1、设置普通密码

    #passwd tommy //修改密码
    Changing password for user tommy.
    New UNIX password: //在这里输入新密码
    Retype new UNIX password: //再次输入新密码
    passwd: all authentication tokens updated successfully.
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、设置会过期的密码

    参考资料

    [需求:为 tom 用户设定密码为 123,并设定密码最长有效期为 90]
    # passwd tom 123  ——设置密码
    # chage -M 90 tom ——设置密码最长有效期
    # passwd -S tom ——查看
    tom PS 2022-04-08 0 90 7 -1 (Password set, MD5 crypt.)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、锁定账户,解锁用户,踢用户下线

    # passwd -l tom ——锁定
    // echo: Locking password for user tom.
    // echo: passwd: Success
    # passwd -u tom ——解锁
    // echo: Unlocking password for user tom.
    // echo: passwd: Success
    # who // 查看哪些用户登录了
    # last jenkins // 查看用户最近的登录记录
    // echo:
    // jenkins  pts/1        112.5.70.181     Fri Jul 29 15:04   still logged in
    // jenkins  pts/1        112.5.70.181     Fri Jul 29 14:59 - 15:04  (00:05)
    // jenkins  pts/1        112.5.70.181     Fri Jul 29 14:12 - 14:59  (00:46)
    // jenkins  pts/1        112.5.70.181     Fri Jul 29 11:20 - 13:38  (02:18)
    # pkill -kill -t pts/1 // 将第一个用户踢下线
    // 每个用户的登录都对应一个`pts/x`
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    4、将目录设置为用户所拥有以及删除拥有

     # chown jenkins jenkins/  // 将`jenkins/`目录的所有权给`jenkins`用户
    
    • 1

    5、删除用户

    # userdel -r jenkins
    以上命令删除jenkins用户 -r:同时删除用户的所属目录
    
    • 1
    • 2

    6、建立一个程序用户

    // 需求:建立一个程序用户 UID 为 250,用户名为 testuser,
    // 没有家目录(程序用户 没有登录系统权限)
    # useradd -u 250 -M -s /sbin/nologin testuser ——建立
    # id testuser ——查看
    // echo: uid=250(testuser) gid=2023(testuser) groups=2023(testuser)
    # su - testuser ——登录测试
    // echo:su: warning: cannot change directory to /home/testuser: No such file or directory This account is currently not available. 
    // 无法登录
    
    -M (没有家目录)-s /sbin/nologin testuser(不使用命令解释器)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    7、赋予用户权限

    参考资源链接

    1、赋予用户root权限-方式1

    修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
    ## Allows people in group wheel to run all commands
    %wheel ALL=(ALL) ALL
    然后修改用户,使其属于root组(wheel),命令如下:
    #usermod -g root tommy
    修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2、赋予用户root权限-方式2

    修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    tommy ALL=(ALL) ALL
    修改完毕,现在可以用tommy帐号登录,然后用命令 su - ,即可获得root权限进行操作。 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、赋予用户通过ssh访问权限

    用useradd新增的用户不能直接用ssh远程访问,需要修改ssh相关配置
    vi /etc/ssh/sshd_config
    添加 
    AllowUsers root@192.168.1.32 admin
    多个用户用空格隔开
    
    • 1
    • 2
    • 3
    • 4
    • 5

    群组

    1、创建分组,删除分组

    需求:建立一个名为 deploy 的组 ID 为 79666
    # groupadd -g 79666 deploy  // 创建deploy分组gid为79666
    # groupmod -g 79888 deploy  // 修改deploy分组的gid为79888
    # groupdel deploy           // 删除deploy分组
    # nano /etc/group 			// 查看分组信息
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、创建用户分配组权限

    // 创建用户'jenkins'
    // 用户id为'9527'
    // 分配基本组为'dev'
    // 组附加组为'deploy'组
    # useradd -g dev -G deploy -u 9527 jenkins
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、将现有用户加入群组

    # usermod -G dev php-boy // 将php-boy加入dev组
    # usermod -G deploy jenkins // 将jenkins加入deploy组
    
    • 1
    • 2

    4、将现用户移出群组

    # gpasswd -d jenkins DEV // 将jenkins用户移出DEV群组
    // echo: Removing user jenkins from group DEV
    
    • 1
    • 2

    5、为组创建一个目录,并设置所有权,设置非群组不能访问

    // 为该组创建一个目录
    # mkdir /home/hgfdir
    // 改变新目录的组所有权
    # chgrp HGF /home/hgfdir
    // 禁止非组成员的访问
    # chmod 770 /home/hgfdir
    // 设置SGID属性(确保HGF组拥有所有新建的文件)
    // 设置sticky(沾滞位)属性(以免文件被拥有者以外的其他人删除)
    # chmod g+s,o+t /home/hgfdir
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    其他补充

    关于权限 chmod xxx

    一个文件有三个权限
    分别是..执行,它们对应的数分别是4.2.1
    如果某个用户只有读权限没有写和执行权限当然就是4,如果三个如果有读和执行权限就是5(4+1)所以有全部权限就是7了
    而一个文件或文件夹面对的用户分三类
    所属用户所属组的成员用户其他用户以及组外用户
    所以777三个数字就是对应这三个用户对象全部都有读、写、执行权限
    举个例子如果是↓
    所属用户有全部权限组员有读和执行权限而组外用户只有读权限
    那数字应该就是
    754

    后续补充的其他博主的链接

    http://t.zoukankan.com/lexiaofei-p-7993683.html

  • 相关阅读:
    TCN+SE+SMOTE分类效果反而下降,怎么办
    Java并发集合
    springboot整合其他项目
    Visual Studio 2022 正式支持 .NET MAUI 开发
    element-ui实现一个动态布局的对话框
    IDEA的快捷键大全
    进程的状态
    Mybatis SQL构建器
    LeetCode 周赛上分之旅 #49 再探内向基环树
    如何保障UDP传输中数据文件不丢失?
  • 原文地址:https://blog.csdn.net/m0_49194578/article/details/126052490