Linux:用户相关指令

说明

Linux是多用户的,就像服务器是多人管理一样。

超管:root用户,具有所有权限。日常工作普通用户即可胜任,除非遇到系统管理的工作,才需要root来完成。

0、查看用户/用户组

学习自:linux查看用户和组_mb6049d9b56b2a1的技术博客_51CTO博客

1)查看当前用户

两种方式:

①whoami;

②每行命令开头:

 

2)查看全部用户:cat /etc/passwd 或 compgen -u

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

root x 0 0 root /root /bin/bash为例:

用户名 密码 用户ID 组ID 用户描述 home目录 默认shell

3)查看指定用户:

①id 用户名

②getent passwd 用户名

id root
uid=0(root) gid=0(root) 组=0(root)
用户ID 组ID 所属其他组

4)查看系统中的所有组:cat /etc/group

复制代码
cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
组名 组密码 组ID 组成员
复制代码

5)查看指定用户所属的所有组:

①id -Gn 用户名

②getent group 组名

③groups 用户名

 

1、添加用户:useradd

用法:useradd [选项] 用户名

说明:

该命令需要用到root权限

选项

选项

全拼

说明

-b

 --base-dir

BASE_DIR

 主目录的基目录
-c

--comment

COMMENT 

 GECOS 字段
-d

--home-dir

HOME_DIR

新账户的home目录
-D --default  显示或更改默认的 useradd 配置
-e 

--expiredate

EXPIRE_DATE 

过期日期
-f

--inactive

INACTIVE

密码不活动期
-g

--gid

GROUP

设置用户所在组;不写该项将会默认创建一个新组
-G

--group

GROUPS

附加组列表
-h --help 帮助
-k

--skel

SKEL-DIR

使用此目录作为骨架目录
-K

--key

KEY-VALUE

不使用 /etc/login.defs 中的默认值
-l --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m --create-home 为用户设置 home dir,相当于在home中为该用户创建dir
-M --no-create-home 不创建用户的主目录
-N --no-user-group 不创建同名的组
-o --non-unique 允许使用重复的 UID 创建用户
-p --password PASSWORD 密码
-r --system 创建一个系统账户
-R 

 --root

CHROOT_DIR

 
CHROOT_DIR
-s

--shell

SHELL

新账户的登录 shell
-u

--uid

UID

指定UID
-U --user-group 创建与用户同名的组
-Z

--selinux-user

SEUSER

为 SELinux 用户映射使用指定 SEUSER

例子

在创建容器时,要生成一个GID为1002的组docker,并为该组创建UID为1002的用户dcos

useradd -u 1002 -g docker dcos

说明

  • 如果在用useradd创建用户时没写密码(通过选项-p设置),那么就要在root下通过指令passwd 用户,来为他指定一个密码,不然之后该用户会出现无法登陆和切换用户的问题

 

2、删除用户:userdel 用户名

3、以root权限来做:sudo 

允许系统让普通用户执行一些需要ROOT权限才能执行命令的工具,提高安全性。

用户组:每个用户都有一个初始组(gid),可以有零个或多个附加组;附加组的作用是为了方便权限控制。即对这个组进行权限设置,就相当于同时对该组所有用户进行了权限设置。

4、用户切换:su

su 用户名:切换为用户

su -:切换为root

exit:退出su切换的用户(如果是登录用户,相当于注销重新登录)

更详细的用法:Linux:su指令 - ShineLe - 博客园

5、用户组

1)添加:groupadd 

写法:groupadd [-grKo] 组名

参数:

参数

说明

-g 指定GID
-r 创建系统工作组,系统工作组的GID<500
-K 覆盖配置文件 /etc/login.defs
-o 允许添加组号不唯一的工作组

例子

建立一个新组并设置组ID:

groupadd -g 344 jsdigname

此时在/etc/passwd中会产生一个GID为344的条目。

改名:groupmod -n 新名 被改名的组

删除:groupdel 组名

6、用户属性修改:usermod

学习自:Linux命令(21)之usermod_小黑要上天的博客-CSDN博客

指令:usermod 选项 用户名

功能

修改/etc/passwd/etc/shawdow文件下的用户属性,包括但不限于shell类型、用户id、用户gid、home目录、用户锁定解锁

选项

参数 说明
-u 修改UID
-d 修改用户主目录
-g 修改用户主群组
-G 修改用户附加群组
-s 修改用户登录shell
-L 锁定用户
-U 解锁用户
-m 移动主目录的内容到新的位置
-c 修改用户名全称
-l 修改用户名

7、修改目录、文件的所属用户/组:chown

用法

  • chown [-R] 所有者 文件或目录

  • chown [-R] 所有者:组名 文件或目录

选项

  • -R 递归变更,持续变更目录下的所有文件

说明

  • 用户必须在/etc/passwd中存在

例子

容器创建时,需要修改/applog所属用户:用户组dcos:docker

chown dcos:docker /applog

8、修改文件目录的权限-读写执行:chmod

chmod:修改权限

用法:

  • chmod [-R] 数字权限 文件或目录
  • chmod [-ugoa] [+-=][rwx] 文件或目录

选项

  • -R 递归变更同次目录下的所有文件
  • xyz 权限代表的数字,每个角色都有一个数字,rwx=7,---=0
  • u:user/owner
  • g:group
  • o:other
  • a:all

例子

将.bashrc的所有权限都设定为启用

chmod 777 .bashrc

②将.bashrc的user权限设置为rwx,group和other权限设置为rx,即文件权限为rwxr-xr-x

chmod u=rwx,go=rx .bashrc

③将.bashrc的权限设置为-rwxr-xr--

chmod u=rwx,g=rx,o=r .bashrc

④如果只是去除权限而不修改其它权限

chmod a-x .bashrc

9、切换用户组:newgrp

学习自:【Shell 命令集合 系统管理 】Linux 切换用户组 newgrp命令 使用指南_泡沫o0的博客-CSDN博客

功能

使用户暂时地切换到另一个用户组,以便在该用户组下执行命令或访问特定的文件。

当用户执行newgrp命令时,系统会要求用户输入目标用户组的密码。如果输入正确,用户将被切换到目标用户组,并且会话的有效组ID(egid)会被修改为目标用户组的组ID。此时用户将具有目标用户组的权限和访问权限

指令:newgrp 目标用户组

错误情况

  • 如果用户输入的目标用户组不存在,则会显示错误信息。
  • 如果用户输入的目标用户组不是用户当前所属的用户组,则会提示用户输入目标用户组的密码。如果密码输入错误,则会显示错误信息。
  • 如果用户没有权限切换到目标用户组,则会显示错误信息。

 

posted @   ShineLe  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示