Linux用户和组管理

用户和组的基本概念

  • 用户的类别:管理员、普通用户(系统用户和登陆用户)

  • 组类别:管理员组、普通用户组 | 基本组和附加组 | 私有组和公有组

  • 数据库文件:

    • /etc/passwd,用于存放用户相关信息,格式:loging:password:uid:gid:comment:home:shell

    • /etc/shadow,用户存放用户相关信息的补充信息,例如密码等,格式:login:encrpted_password:…

    • /etc/group,组的信息,格式:group:password:gid:user_list

密码存储格式:单向加密,并加入salt完成:1.md5,2.sha1,3.sha224,4.sha256,5.sha384,6.sha512

用户组管理相关命令

Linux中进程需要以某一个用户运行,一般为进程发起者,进程的文件访问权限也取决于用户的权限,为了让后台进程和服务进程以非管理员身份运行,通常需要创建多个普通用户,这类只为了运行程序而不会登陆的用户称之为系统用户。

groupadd: 添加组

命令格式:groupadd [选项] group_name

参数说明:

  • -g GID: 指定GID,默认为上一个组的GID+1

  • -r: 创建系统用户

groupmod: 修改组

命令格式:groupmod [选项] GROUP

参数说明:

  • -g GID: 修改GID

  • -n new_name: 修改组名

groupdel: 删除组

命令格式:groupdel [选项] GROUP

用户管理相关命令

useradd: 创建用户

命令格式: useradd [选项] 登录名

参数说明:

  • -u, --uid UID: 指定用户UID

  • -g, --gid GROUP: 指定基本组ID,此组必须事先存在

  • -G, --groups GROUP1,GROUP2,…: 指明用户所属的附加组,多个之间用逗号分割

  • -c, --comment COMMENT: 注释信息

  • -d, --home HOME_DIR: 指定用户的家目录,通过复制/etc/skel目录,并重命名实现,指定的家目录存在则不回为用户复制环境变量

  • -s, --shell SHELL: 指定用户的默认SHELL

useradd -D: 显示创建用户时的默认配置

useradd -D 选项: 修改默认选项的值,修改的结果保存在/etc/default/useradd文件中

usermod: 修改用户属性

命令格式: usermod [选项] 登录名

参数说明:

  • -u, --uid UID: 修改用户的ID

  • -g, --gid GROUP: 修改用户的基础组

  • -G, --groups GROUP1,GROUP2,…: 修改用户所属的附加组,原来的附加组会被覆盖

  • -a, --append: 与-G一同使用,用于为附加组追加新的附加组

  • -c, --comment COMMENT: 修改注释信息

  • -d, --home HOME_DIR: 修改用户的家目录,用户原有的文件不会被转移到新的家目录中

  • -m, --move-home: 只能与-d一同使用,用于将原来的家目录移动为新的家目录

  • -l, --login NEW_LOGIN_NAME: 修改用户名

  • -s, --shell SHELL: 修改用户的默认shell

  • -L, --lock: 锁定用户密码,即在用户原来的密码字符串前加一个"!"

  • -U, --unlock: 解锁用户的密码

userdel: 删除用户

命令格式: userdel [选项] 登录名

参数说明:

  • -r: 删除用户是一并删除家目录

例子

  • 创建用户gentoo, UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001)

  • 创建用户fedora,其注释信息为“Fedora Core”,默认SHELL为/bin/tcsh

  • 修改gentoo用户的家目录为/var/tmp/gentoo,要求其原来的文件仍能够被用户访问

  • 为跟痛哦新增附加组netadmin

passwd: 密码修改

命令格式: passwd [选项] [username]

  1. passwd: 修改用户自己的密码

  2. passwd USERNAME: 修改指定的用户密码,仅root由此权限

参数说明:

  • -l, -u: 锁定/解锁用户

  • -d: 清楚用户密码串

  • -e: 国旗期限,日期

  • -i DAYS: 非活动期限

  • -n DAYS: 密码最短使用期限

  • -x DAYS: 密码最长使用期限

  • -w DAYS: 警告期限

gpasswd: 组密码修改

组密码存储在/etc/gshadow。

命令格式: gpasswd [选项] group

参数说明:

  • -a USERNAME: 想组中添加用户

  • -d USERNAME: 从组中移除用户

newgrp: 临时切换指定的组为基本组

命令格式: newgrp [-] [group]

参数说明:

  • -: 会模拟用户重新登陆以实现重新初始化其工作环境

chage: 修改用户密码过期信息

命令格式: chage [选项] 登录名

参数说明:

  • -d

  • -E

  • -W

  • -m

  • -M

id: 显示用户信息

命令格式: id [选项] 登录名

参数说明:

  • -u: 仅显示有效的UID

  • -g: 仅显示用户的基本组ID

  • -G: 仅显示用户所属的所有组ID

  • -n: 显示名字而非ID

su: 切换用户

  • 登陆式切换: 会通过读取目标用户的配置文件来重新初始化

su - USERNAME

su -l USERNAME

  • 非登陆式切换: 不会读取目标用户的配置文件来重新初始化

root用户可以无需密码切换到任何其他用户

-c ‘COMMAND’: 仅以指定的用户身份运行指定的命令

其他几个命令:chfn, chsh, finger, whoami, pwck, grpch

权限管理

文件/目录权限简介

运行ls -la可以看见当前目录文件的权限信息如下

drwxr-xr-x

第一位:表示当前文件/目录是文件、目录、符号连接、套接字、快设备等信息,可以是d、l、b、c、s、p等;
左边2-4位:代表当前文件所有者的权限信息,依次为读、写、执行权限
左边5-7位:当前文件所属组的权限信息
最右三位:其他用户的权限信息

针对文件:r:可读;w:可写;x:可执行

针对目录: r:可以使用ls列出其中的文件;w:可以创建或者删除其中的文件;x:可以使用cd命令切换至此目录

chmod权限管理

命令格式有三种:

chmod [option]… MODE[,MODE]… FILE…
chmod [option]… OCTAL-MODE FILE…
chmod [option]… --reference=RFILE FILE…

用户表示:u:属主;g:属组;o:其他;a:所有

第一种使用方式

MODE表示法

  • 赋权表示法:直接操作一类用户的所有权限位,例如u=rwxg=rxo=ra=rwx

  • 授权表示法:直接操作一类用户的一个权限位,例如u+xg+xu-x

例如

chmod u+x test.sh
chmod a-x test.sh
chmod u=rwx test.sh
chmod u=rx test.sh
第二种使用方式

chmod [option]【三位8进制数字】文件/目录

例如

chmod 755 test.sh
chmod 744 test.sh
chmod --reference=other.sh test.sh

在修改目录的权限信息时,可以加上-R选项来递归修改目录中的所有文件权限信息

chown\chgrp从属关系管理

chown [option]… WONER[:[GROUP]] FILE…
chown [option]… --reference=RFILE FILE…

-R选项:递归修改

例如

chown -R es elasticsearch
chown -R es:es elasticsearch

chgrp [option]… GROUP FILE…
chgrp [option]… --reference=RFILE FILE…

例如

chgrp es elasticsearch.yml
chgrp es --reference=jvm.options elasticsearch.yml

umask文件权限反向掩码(遮罩码)

文件:666-umask

目录:777-umask

注意:之所以文件用666去减mask,代码文件默认没有执行权限,如果减得得结果有执行权限,则需要将其加1。

例如: umask为023

文件:666-023 = 644
目录:777-023 = 754

命令:

  • umask: 查看当前得umask

  • umask MASK: 设置umask,当前SHELL有效

install命令

  • 单源复制:install [option]... [-T] SOURCE DEST

  • 多源复制:install [option]... SOURCE... DIRECTORY或者install [option]... -t DIRECTORY SOURCE...

  • 创建目录:install [option]... -d DIRECTORY

常用选项

-m, --mode=MODE:设定目录文件权限,默认为755
-o, --owner=OWNER:设定目录文件的属主
-g, --group=GROUP:设定目录文件的属组

mktemp命令

mktemp /tmp/mytmp.XXXX

创建一个临时文件,XXXX为一个随机字符串,其中XXXX的个数可以任意指定

-d:选项,创建一个临时目录

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值