首页 > 系统相关 >Linux系统用户、用户组以及权限管理常用命令

Linux系统用户、用户组以及权限管理常用命令

时间:2023-06-30 23:04:51浏览次数:44  
标签:用户组 常用命令 用户 Linux home 权限 usermod hello

记录Linux系统用户、组和相关设置。

用户和用户组

  • 在 /etc/group 存储当前系统中的用户组信息

 

注意:

  1. 当该组内只有一个用户,并且用户名和组名相同时,在组列表中,包含用户一列可以为空

2. 系统中root分组的组编号一定为0

3. 组号1~499为系统预留的组编号,一般是预留给系统安装的软件或者服务的编号,越早安装的软件或者服务的组编号越早。用户手动创建的用户组编号从500开始

4. 组密码占位符,无一例外,全部用x表示

  • 在 /etc/gshadow  存储当前系统中用户组的密码信息

 

注意:

1. 如果组密码处为“*” “!”或者为空时候,则该组没有密码

2. 如果组管理者为空,则表示该组内所有成员都可以管理该组

  • 在 /ect/passwd 存储当前系统中所有的用户信息

 

在linux中,超级管理员root的用户编号一定为0

  • 在 /ect/shadow存储当前系统中所有用户的密码信息

 

密码是一个单向加密过的字符串

拥有者(user),拥有组(group),其他人(other)

  • 由于Linux是一个多人多任务的系统,因此经常会出现同一台机器同时有多个人进行操作,为了考虑每个人的隐私权以及每个人喜好的工作环境,所以文件的权限归属就至关重要。
  • 为了保障系统的安全性和文件的隐私性,一个文件针对不同权限的账户有着不同的权限

 

  • 文件权限是由一个字符串所表示,其所代表的含义为

 

  • 文档类型有如下表示方法: d 目录,例如上表档名为『.gconf』的那一行- 文档,例如上表档名为『install.log』那一行l 连结档(link file)b 装置文件里面的可供储存的接口设备(可随机存取装置)c 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
  • 权限由rwx三个字幕表示,分别表示为可读、可写、可执行,如果没有该权限,则用“ - ”表示,对于目录来说,必须有x权限,否则无法读取目录内容
  • 如果文件名前面有“ . ”,则表示这个文档或目录是隐藏的

相关命令

查看用户信息

id username

 

我当前的命令输出,可以查看用户 id 、组信息:

$ id vvd
用户id=1000(vvd) 组id=1000(vvd) 组=1000(vvd),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare),135(libvirt)

 

创建用户

useradd xxx    //创建一个名为xxx的用户

 

该命令执行后

  1. 会在/etc/passwd文件中添加xxx用户的信息
  2. 会在/etc/group文件中添加一个名为xxx的用户组信息
passwd xxx    //为xxx用户设置密码

 

  • useradd可以使用的参数包含:

参数

描述

示例

-d

设置该用户的home目录

useradd -d /home/helloworld hello //新建hello用户,并且将其home目录设置为/home/helloworld

-u

设置其userid

useradd -u 668 hello //新建一个hello用户,将他的id设置为668

-g

设置其主组

useradd -g root hello //新建一个hello用户,并将其加入root组

-m

生成home目录的文件夹

useradd -m hello //新建一个hello用户,并且在默认位置申城一个hello文件夹(/home/hello),并且将/etc/skel下的文件复制到该目录下

  • 正常使用时建议加入 -m 参数
useradd username -m

 

随后需要指定shell,不然不便于终端操作

usermod -s /bin/bash username

 

  • 如需要额外指定 home 以外的目录作为家目录
useradd username -m -d /path/to/home

 

修改用户信息

  • usermod 命令
usermod 参数 用户名

 

参数

描述

示例

-l

修改新用户名

usermod -l helloworld hello 将hello用户名改为helloworld,但其home目录不改变

-u

修改用户的userid

usermod -u 888 hello 将hello的userid改为888

-d

修改用户的home目录

usermod -d /home/new_home hello 将hello用户的家目录改为/home/new_home

-g

修改用户的主用户组

usermod -g anotherg hello 将hello用户的组改为anotherg

-G

将现有用户添加到辅助组(可以是多个)

usermod [-G] [[GroupName1,GroupName2]] [UserName] / usermod -a -G mygroup user1

-L

锁定用户,使其不能登录

usermod -L hello 锁定hello

-U

解除锁定

usermod -U hello 解除锁定hello

-a

添加 不修改之前的组

usermod -aG ssh hello 将hello用户加入到ssh组内,不改变其他组

  • gpasswd 命令
gpasswd 参数 用户名 组名

 

gpasswd 命令用于管理 /etc/group 和 /etc/gshadow。每个组都可以有管理员、成员和密码。

参数

描述

示例

-M

将现有用户添加到次要组或者附加组

gpasswd -M user1 mygroup 把 user1 添加到 mygroup 中

-M

添加多个用户到次要组或附加组中

gpasswd -M user2,user3 mygroup1 把 user2 和 user3 添加到 mygroup1 中

-d

从组中删除一个用户

gpasswd -d user1 mygroup 从 mygroup 中删除 user1

删除用户

userdel 参数 用户名

 

参数

描述

示例

-r

删除用户的同时将其home目录也删掉

userdel -r hello 将hello用户连根删掉

创建用户组

groupadd 组名

 

修改用户组

groupmod -n 新组名 旧组名    //修改组名
groupmod -g 新组id    旧组id    修改组ID

 

查看组内成员

getent group groupname

 

$ getent group sudo
sudo:x:27:vvd

 

删除用户组

groupdel 组名

 

改变文档(目录)的所有者(所有组)

  • 改变文档所有者 - chown命令(change owner),可使用参数 -R使得其子目录也同时修改
  • 改编文档所有组 - chgrp命令 (change group),可使用参数 -R使得其子目录也同时修改
  • 也可以使用
chown username:group 文件名

 

来同时修改文档或目录的拥有者和所在组

修改文档的执行权限

chmod 参数 文件名

 

  • 可以使用如下方法直接设置文件的权限
  • 可以使用如下方法直接设置文件的权限
  1. 直接设置代表权限的数字
chmod 777(对应权限的数字) 文件名

 

  1. 给文件添加或减去某些权限

命令

描述

chmod u+w 文件名

给user用户加上w权限

chmod g-r 文件名

将group中的r权限去掉

chmod a+x 文件名

给user、group、other全部加上x权限

错误记录

用户登录报错

  • 登录时报错:
/usr/bin/xauth: file /home/user/.Xauthority does not exist
  • 错误原因: 添加用户时没有授权对应的目录,仅仅执行了useradd user而没有授权对应的家目录
  • 直接解决办法如下(执行如下命令,以后就登录到终端上就不会出现上面的错误信息):
chown username:username -R /home/user_dir

 

标签:用户组,常用命令,用户,Linux,home,权限,usermod,hello
From: https://blog.51cto.com/u_3369545/6595365

相关文章

  • linux7 防火墙,firewall的说明及相关配置注释
    1、linux7防火墙,firewall的说明及相关配置注释防火墙RedhatEnterpriseLinux7已经默认使用firewalld作为防火墙,其使用方式已经变化。基于iptables的防火墙被默认不启动,但仍然可以继续使用。RHEL7中有几种防火墙共存:firewalld、iptables、ebtables等,默认使用firewalld作为防火墙,管......
  • Linux man命令手册使用方法,man和man5区别
    1.man手册页简介man手册页(manualpages,“手册”),是类UNIX系统最重要的手册工具。多数Linux发行版都预装了它。Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。man手册分了9个章节,每个章节都有它对应的作用,请看下表:章节名称描述1Standard......
  • Linux操作系统加固建议
    1、Linux操作系统加固建议1.1.1口令锁定策略1、执行备份(1)、redhat执行备份:#cp-p/etc/pam.d/system-auth/etc/pam.d/system-auth_bak(2)、SUSE9:#cp-p/etc/pam.d/passwd/etc/pam.d/passwd.bak(3)、SUSE10:#cp-p/etc/pam.d/common-passwor......
  • linux存放history命令的文件
    当你在玩Linux的时候,如果你经常使用命令行来控制你的Linux系统,那么有效地使用命令历史机制将会使效率获得极大提升。事实上,一旦你掌握了我在下面给出的15个有关Linuxhistory历史命令的例子,你就会发现使用history历史命令行将更有乐趣。1、使用HISTTIMEFORMAT在历史中显示TIMESTAMP......
  • 手动清除或刷新Linux的Swap分区
    物理内存接近饱和时,系统会自动将不常用的内存文件转储到Swap中,但Swap使用率达30%的时候对系统性能可能有一定影响。但当物理内存重新释放时,储存在Swap分区的其它应用不会重新回到物理内存中,所以会造成一定影响,此时可以考虑手动刷新Swap分区。一、SWAP开关:1、关闭SWAP一般用于大物理......
  • Linux索引节点(Inode)用满导致空间不足
    1、问题:在创建新目录和文件是提示“nospaceleftondevice”!按照以前的情况,很有可能是服务器空间又被塞满了,通过命令查看,发现还有剩余。再用df-i查看了一下/分区的索引节点(inode),发现已经用满(已用=100%),导致系统无法创建新目录和文件。2、问题原因分析:Inode译成中文就是索引节......
  • linux系统使用审计audit查看系统安全情况。
    查看审计报告一旦定义审计规则后,它会自动运行。过一段时间后,我们可以看看auditd是如何帮我们跟踪审计的。Auditd提供了另一个工具叫aureport。从名字上可以猜到,aureport是使用系统审计日志生成简要报告的工具。我们已经配置auditd去跟踪/etc/passwd文件。auditd参数设置后一段......
  • Linux编译过程以及生成中间文件--链接
    1、编译系统C源文件到可执行文件共经历了4个过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段,包括预处理、编译、汇编、链接 1、预处理在预处理阶段,编译器主要作加载头文件、宏替换、条件编译的作用。一般处理带“#”的语句。 我们可以通过gcc的-E选项进行查看......
  • 关于Linux内核-live-patching-更新内核补丁模块
    由于内核补丁模块是通过RPM软件包交付和应用,更新累积内核补丁模块就如同更新任何其他RPM软件包一样。先决条件:系统已订阅实时补丁流,如将当前安装的内核订阅到实时补丁流中所述。流程如下:更新至当前内核的新累计版本:#yumupdate"kpatch-patch=$(uname-r)"以上命令......
  • 关于Linux系统-内核-live-patching-的介绍
    关于Linux,我们可以使用RedHatEnterpriseLinux内核实时修补解决方案在不重启或者重启任何进程的情况下对运行的内核进行补丁先看一下官网的一段关于Applyingpatcheswithkernellivepatching的介绍:YoucanusetheRedHatEnterpriseLinuxkernellivepatchingsol......