Linux命令——用户和权限相关

文章目录

  • 1 用户管理
    • 1.1 用户标识符
    • 1.2 用户添加
    • 1.3 用户删除
    • 1.4 用户配置文件
      • 1.4.1 passwd文件
      • 1.4.2 shadow文件
      • 1.4.3 group文件
  • 2 密码管理
  • 3 权限管理

1 用户管理

1.1 用户标识符

用户标识符主要是UID和GID,UID表示用户id,GID表示用户组id。在登录的时候,我们输入的是用户名,但是系统实际并不识别用户名,而是根据用户名查表,查询到UID,作为用户的唯一标识。
在用户登录的时候,每个登录用户最少都会获取到两个ID,一个是UID,一个就是GID。
与UID和GID相关的是权限的管控,每一个文件都有所属的用户和用户组用以控制文件的访问权限,当我们ls -l需要显示用户和用户组的时候,实际是会根据/etc/passwd与/etc/group的内容找到对应的UID和GID对应的名称,再完成显示。

1.2 用户添加

用户添加使用命令useradd

sudo useradd -m tom

ubuntu上添加用户后不会弹出直接添加密码,需要添加用户后再添加密码

sudo passwd tom

至此,添加用户成功,这里的-m是创建用户主目录,如果不加,则没有用户主目录,会进入根目录

su tom
$

切换到新用户,这里可以看到没有前面的主机名,用户名和目录的显示,这是因为在创建用户的使用没有指定shell,默认使用的是/bin/sh,一般指定为bash

sudo useradd -m -s /bin/bash Bob

一般使用这条命令就可以了
其他useradd的一些参数

用法:useradd [选项] 登录名
      useradd -D
      useradd -D [选项]

选项:
      --badnames                do not check for bad names
  -b, --base-dir BASE_DIR       新账户的主目录的基目录
      --btrfs-subvolume-home    use BTRFS subvolume for home directory
  -c, --comment COMMENT         新账户的 GECOS 字段
  -d, --home-dir HOME_DIR       新账户的主目录
  -D, --defaults                显示或更改默认的 useradd 配置
  -e, --expiredate EXPIRE_DATE  新账户的过期日期
  -f, --inactive INACTIVE       新账户的密码不活动期
  -g, --gid GROUP               新账户主组的名称或 ID
  -G, --groups GROUPS           新账户的附加组列表
  -h, --help                    显示此帮助信息并退出
  -k, --skel SKEL_DIR           使用此目录作为骨架目录
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
  -l, --no-log-init             不要将此用户添加到最近登录和登录失败数据库
  -m, --create-home             创建用户的主目录
  -M, --no-create-home          不创建用户的主目录
  -N, --no-user-group           不创建同名的组
  -o, --non-unique              允许使用重复的 UID 创建用户
  -p, --password PASSWORD       加密后的新账户密码
  -r, --system                  创建一个系统账户
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             新账户的登录 shell
  -u, --uid UID                 新账户的用户 ID
  -U, --user-group              创建与用户同名的组
  -Z, --selinux-user SEUSER     为 SELinux 用户映射使用指定 SEUSER
      --extrausers              Use the extra users database

1.3 用户删除

sudo userdel tom

这条命令删除用户,保留用户主目录

sudo userdel -r tom

这条命令删除用户,并删除用户主目录和信箱
userdel的其他参数

用法:userdel [选项] 登录名

选项:
  -f, --force                   即使不属于此用户,也强制删除文件
  -h, --help                    显示此帮助信息并退出
  -r, --remove                  删除主目录和信件池
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
      --extrausers              Use the extra users database
  -Z, --selinux-user            为用户删除所有的 SELinux 用户映射

1.4 用户配置文件

1.4.1 passwd文件

用户添加后会在/etc/passwd中添加一条用户记录

Bob:x:1002:1002::/home/Bob:/bin/bash

Bob:账号名称
x:密码,保存到了/etc/shadow文件中
1002:UID
1002:GID
:这里有一个空的,是用户信息说明栏
/home/Bob:用户主目录
/bin/bash:shell

1.4.2 shadow文件

Bob:$y$j9T$6YPTqUQb3XlMTD0zcGWFY/$rXyBQ2mQndvEBvOcEUllsyxF1sdOcJxi7Mq2GzBxPB6:19729:0:99999:7:::

Bob:用户名
$y$j9T$6YPTqUQb3XlMTD0zcGWFY/$rXyBQ2mQndvEBvOcEUllsyxF1sdOcJxi7Mq2GzBxPB6:加密后的密码
19729:最近修改密码的日期,从1970年1月1日起的天数
0:密码不可被修改的天数
99999:密码需要重新修改的天数
7:密码需要修改期限前的警告天数
:空的,密码过期后的宽限天数
:空的,账号失效日子
:空的,保留

1.4.3 group文件

该文件中保存了用户组相关信息

Bob:x:1002:

Bob:用户组名称
x:用户组密码
1002:GID
:空的,此用户组支持的账号名称

2 密码管理

密码修改和添加

passwd username

第一次添加就是初始化密码,后续就是修改密码
passwd其他参数

用法:passwd [选项] [登录名]

选项:
  -a, --all                     报告所有帐户的密码状态
  -d, --delete                  删除指定帐户的密码
  -e, --expire                  强制使指定帐户的密码过期
  -h, --help                    显示此帮助信息并退出
  -k, --keep-tokens             仅在过期后修改密码
  -i, --inactive INACTIVE       密码过期后设置密码不活动为 INACTIVE
  -l, --lock                    锁定指定的帐户
  -n, --mindays MIN_DAYS        设置到下次修改密码所须等待的最短天数
                                为 MIN_DAYS
  -q, --quiet                   安静模式
  -r, --repository REPOSITORY   在 REPOSITORY 库中改变密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -S, --status                  报告指定帐户密码的状态
  -u, --unlock                  解锁被指定帐户
  -w, --warndays WARN_DAYS      设置过期警告天数为 WARN_DAYS
  -x, --maxdays MAX_DAYS        设置到下次修改密码所须等待的最多天数
                                为 MAX_DAYS

3 权限管理

通常都是通过chmod命令来修改用户和用户组权限
语法

chmod [-cfvR] [--help] [--version] mode file...

mode可以有以下参数

[ugoa...][[+-=][rwxX]...][,...]

u:用户
g:用户组
o:其他用户
a:以上的都包含
+:添加
-:删除
=:赋值
r:读权限
w:写权限
x:可执行权限
X:特殊执行权限
实例:

chmod a+x file
给文件的所有用户添加可执行权限
chmod 777 file
file权限为rwxrwxrwx
chmod -R a+x folder
递归修改文件夹权限
chmod user:group file
修改文件的用户和用户组

chmod其他参数

用法:chmod [选项]... 模式[,模式]... 文件...
 或:chmod [选项]... 八进制模式 文件...
 或:chmod [选项]... --reference=参考文件 文件...
将每个 <文件> 的模式变更为指定 <模式>。
使用 --reference 时,把每个 <文件> 的模式设置为与 <参考文件> 相同。

  -c, --changes          类似 verbose 选项,但仅在做出修改时进行报告
  -f, --silent, --quiet  不显示大多数错误消息
  -v, --verbose          为每个处理的文件输出一条诊断信息
      --no-preserve-root  不特殊对待 "/"(默认行为)
      --preserve-root    不允许在 "/" 上递归操作
      --reference=参考文件  使用 <参考文件> 的模式而非给定 <模式> 的值
  -R, --recursive        递归修改文件和目录
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

你可能感兴趣的:(计算机基础,linux,运维,服务器)