Linux用户及用户组添加和删除操作

本文详细介绍Linux系统中用户账户和组的管理方法,包括创建、删除用户与组,以及如何修改用户权限。此外,还介绍了如何使用chmod、chown和chgrp命令来调整文件的所有权和访问权限。


查看用户

whoami  #要查看当前登录用户的用户名
who am i  #表示打开当前伪终端的用户的用户名
who mom likes

who 命令其它常用参数

参数  说明
-a  打印能打印的全部
-d  打印死掉的进程
-m  同am i,mom likes
-q  打印当前登录用户数及用户名
-u  打印当前登录用户登录信息
-r  打印运行等级


1. 创建用户

adduser newname // 新建用户newname

useradd -m newname2 // 新建用户newname2,加-m会在/home下面创建该用户目录

useradd 只创建用户,创建完了用 passwd newname2去设置新用户的密码。 
adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。 

其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。


2. 删除用户

deluser是delete和user的缩写,delete是英语“删除”的意思,user是“用户”的意思。

userdel newname
deluser –remove-home newname

单单用deluser命令,不加参数的话,只会删除用户,但是不会删除在/home目录中的用户家目录。如果你想要连此用户的家目录也一并删除,可以加上 –remove-home 这个参数,如下:

deluser –remove-home newname

这样,不仅删除了newname这个用户,连/home/newname这个目录也会删除。

注意:adduser和deluser命令只是Debian一族(包括Ubuntu)才有的命令。其他的LInux发行版,一般来说,添加用户和删除用户是用useradd和userdel命令。 
而且,用useradd添加用户之后,在默认的情况下,该账号是暂时被封锁的, 也就是说,该账号是无法登录,须要用passwd命令来给新创建的用户设置密码之后才可以使用。


3. 创建组

addgroup是add和group的缩写,add是英语“添加”的意思,group是英语“群组”的意思。所以addgroup命令用于添加一个新的群组。

sudo addgroup siatstudent
groupadd testgroup

* 修改组*

groupmod -n test2group testgroup

4. 删除组

delgroup是delete和group的缩写,delete是英语“删除”的意思,group是英语“群组”的意思。所以delgroup命令用于删除一个已存在的群组。

delgroup happy //就删除了happy这个群组。
groupdel test2group
  • 注意:addgroup和delgroup命令只是Debian一族(包括Ubuntu)才有的命令。其他的LInux发行版,一般来说,添加用户和删除用户是用groupadd和groupdel命令。


5. 查看组

cd /home
ls -l
#第三列表示文件或目录的所有者,第四列表示文件或目录的所在群组

groups  #查看当前登陆用户所在的组
groups testnewuser #查看testnewuser 所在的组
cat /etc/group  #查看所有组

6. 修改密码

passwd命令是password这个英语单词的缩写,表示“密码”

passwd newname //为newname用户设置密码

7. 修改用户账户

usermod是user和modify的缩写,user是英语“用户”的意思,modify是“修改”的意思。usermod命令用于修改用户的账户。

-l:对用户重命名,但是/home目录中的用户家目录名不会改变,需要手动修改。
-g:修改用户所在群组
 usermod -g newgroup newname //更改newname的gid(即群组)为newgroup群组

当然我们也可以一次将一个用户添加到多个群组,就用 -G 参数(大写的G)。用法如下:

usermod -G friends,happy,funny newname
  • 以上命令把newname添加到friends,happy和funny三个群组。记得群组名之间要用逗号分隔,而且没有空格。

注意:使用usermod时要小心,因为配合-g或-G参数时,它会把用户从原先的群组里剔除,加入到新的群组。如果你不想离开原先的群组,又想加入新的群组,可以在-G参数的基础上加上-a参数,a是英语append的缩写,表示“追加”。例如:

usermod -aG happy newname

以上命令就把newname追加到群组happy里了,这样newname就属于两个群组:newgroup和happy

groups newname #查看newname所属群组
id //查看本身所属群组

8. 设置文件的权限

chmod命令详细用法 
chmod命令:修改文件的访问权限 
chmod是change和mode的缩写,change是英语“改变”的意思,mode是“模式”的意思。chmod命令用于修改文件的各种访问权限。

指令名称 : chmod 
使用权限 : 所有使用者 
使用方式 : chmod [-cfvR] [–help] [–version] mode file…

说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 
参数 : 
mode : 权限设定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中 
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a 表示这三者皆是。 
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
r 表示可读取,w 表示可写入,x 表示可执行。

    d:是英语directory的缩写,表示“目录”。就是说这是一个目录。
    l:是英语link的缩写,表示“链接”。就是说这是一个链接。
    r:是英语read的缩写,表示“读”。就是说可以读这个文件。
    w:是英语write的缩写,表示“写”。就是说可以写这个文件,也就是可以修改。
    x:是英语execute的缩写,表示“执行,运行”。就是说可以运行这个文件

访问权限是按照用户来划分的

除开第一个表示文件或目录属性的符号(此处是d,表示目录。如果是l,则是链接。如果是短横-,那么是普通文件。),其他的9个符号被划分为三组,从左到右分别

第一组rwx表示文件的所有者对于此文件的访问权限。
第二组rwx表示文件所属的群组的其他用户对于此文件的访问权限。
第三组rwx表示除前两组之外的其他用户对于此文件的访问权限。


事实上,Linux系统对每种权限(r,w和x)分配了对应的数字:

权限  数字
r    4
w    2
x    1

每一组权限对应一个数字。


用字母来分配权限:chmod的相对用法

我们需要知道不同的字母代表什么:

u:user的缩写,是英语“用户”的意思。表示所有者。
g:group的缩写,是英语“群组”的意思。表示群组用户。
o:other的缩写,是英语“其他”的意思。表示其他用户。
a:all的缩写,是英语“所有”的意思。表示所有用户。


当然了,和这些字母配合的还有几个符号:

+:加号,表示添加权限。
-:减号,表示去除权限。
=:等号,表示分配权限。


接下来,我们举例说明如何使用:

#文件file.txt的所有者增加读和运行的权限。
chmod u+rx file.txt

#文件file.txt的群组其他用户增加读的权限。
chmod g+r file.txt 

#文件file.txt的其他用户移除读的权限。
chmod o-r file.txt 

#文件file.txt的群组其他用户增加读的权限,其他用户移除读的权限。
chmod g+r o-r file.txt 

#文件file.txt的群组其他用户和其他用户均移除读的权限。
chmod go-r file.txt 

#文件file.txt的所有用户增加运行的权限。
chmod +x file.txt 

#文件file.txt的所有者分配读,写和执行的权限;群组其他用户分配读的权限,不能写或执行;其他用户没有任何权限。
chmod u=rwx,g=r,o=- file.txt

-R参数:递归地修改访问权限

chmod配合-R参数可以递归地修改文件访问权限。

假如我要只允许newname这个用户能读,写,运行/home/newname这个目录的所有文件(当然,root不算,root可以做任何事),该怎么做呢?

chmod -R 700 /home/newname


chown命令

chown是change和owner的缩写,change是英语“改变”的意思,owner是英语“所有者”的意思。

因此chown命令用于改变文件的所有者。

chown命令:改变文件的所有者

后接新的所有者的用户名,再接文件名。例如:

chown newname file.txt
chown -R newname newdir //将目录newdir下面所有文件的所有者改为newname用户


chown命令也可以改变文件的群组,用法如下:

chown newname:friends file.txt

这句命令就把file.txt这个文件的所有者改为newname,群组改为friends了。用法也很简单,就是在所有者和群组之间用冒号隔开。


-R参数:递归设置子目录和子文件

R是recursive的缩写,表示“递归”。所以如果chown命令配上-R参数,就会使得被修改的目录的所有子目录和子文件都改变所有者(或者连群组也改变,如果用上述冒号的方法来同时修改所有者和群组)。

想要把用户newname的家目录的所有子目录和文件都占为己有。我可以这么做:

chown -R bids:bids /home/newname

这样不但使/home/newname这个目录的所有者和群组都变成bids,而且其子目录和子文件也都是如此。


chmod命令:修改访问权限

在Linux系统里,每个文件和目录都有一列权限属性。这一列访问权限指明了谁有读的权利,谁有修改的权利,谁有运行的权利。


chgrp命令:改变文件的群组

chgrp是change和group的缩写,change是英语“改变”的意思,group是英语“群组”的意思。

chgrp命令用于改变文件的群组。

后接新的群组名,再接文件名。例如:

chgrp newname file.txt
chgrp -R newgroup newdir //将newdir下所有文件的所属群组改为newgroup群组

举例说明:Linux系统新挂载了一个硬盘,命名为publicspace。 
设置一个公共盘publicshare,所有用户都可以访问该文件夹来分享文件

chmod 777 publicshare -R //递归publicshare目录下面所有文件对所有用户公开

若在该文件夹新建文件夹newname,只能让用户newname有权限对文件夹newname

#更改文件的所有者和组
sudo chown newname:newname newname

#更改文件的读写权限
sudo chmod go-rw newname

 /etc/skel 目录

/etc/skel目录一般是存放用户启动文件的目录,这个目录是由root权限控制,当我们添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下;/etc/skel 目录下的文件都是隐藏文件,也就是类似.file格式的;我们可通过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一、标准的、默认的用户环境;

/etc/skel 目录下的文件,一般是我们用useradd 和adduser 命令添加用户(user)时,系统自动复制到新添加用户(user)的家目录下;如果我们通过修改 /etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把/etc/skel 下的文件复制到用户的家目录下,然后要用chown 来改变新用户家目录的属主;


### 回答1: 删除用户: 1. 使用userdel命令删除用户,命令格式为:userdel [选项] 用户名 例如:userdel -r testuser 其中,-r选项表示删除用户的同删除用户的家目录。 2. 使用deluser命令删除用户,命令格式为:deluser [选项] 用户名 例如:deluser --remove-home testuser 其中,--remove-home选项表示删除用户的同删除用户的家目录。 删除组: 1. 使用groupdel命令删除组,命令格式为:groupdel 组名 例如:groupdel testgroup 2. 使用delgroup命令删除组,命令格式为:delgroup 组名 例如:delgroup testgroup ### 回答2: Linux系统是一种开源、免费的操作系统,广泛应用于各种计算机系统中,具有高安全性、稳定性可靠性。在Linux系统下,我们经常需要删除不再使用的用户组,以便于清理系统资源维护系统安全。下面我将介绍Linux删除用户组的方法。 一、Linux删除用户的方法: 1.使用userdel命令 使用以下命令可以快速删除Linux系统中的一个用户: # userdel [用户名] 例如删除名为test的用户,则可以使用以下命令: # userdel test 2.删除用户的同删除用户的主目录 如果需要删除用户的同删除用户的主目录,则需要在userdel命令后跟上选项“-r”,如下所示: # userdel -r [用户名] 例如删除名为test的用户及其主目录,则可以使用以下命令: # userdel -r test 二、Linux删除组的方法: 1.使用groupdel命令 使用以下命令可以快速删除Linux系统中的一个组: # groupdel [组名] 例如删除名为testgroup的组,则可以使用以下命令: # groupdel testgroup 2.删除组的同删除组所拥有的所有用户 如果需要删除组的同删除组所拥有的所有用户,则需要在groupdel命令后跟上选项“-f”,如下所示: # groupdel -f [组名] 例如删除名为testgroup的组及其所有用户,则可以使用以下命令: # groupdel -f testgroup 在删除用户组的过程中,我们需要注意以下几点: 1.删除用户或组之前,需要先确认该用户或组是否还在使用中,避免误删系统核心用户或组。 2.删除用户或组之后,相关的资源也同删除,请备份好数据以免误删影响系统运行。 3.删除用户或组的权限需要管理员级别才能够进行,以防止其他用户进行恶意操作。 ### 回答3: Linux删除用户组是非常简单的,只需要使用几个命令就可以完成。下面我们就来看看具体的步骤操作。 一、删除用户 1. 查看当前已有的用户列表 为了确定我们需要删除用户,我们可以先查看当前系统上已有的用户列表。使用以下命令: $ cat /etc/passwd | cut -d : -f 1 其中,/etc/passwd 文件包含系统上的所有用户他们的详细信息,而 cut 命令则用于剪切只保留用户名。 2. 删除用户 使用以下命令删除一个用户: $ userdel username 其中,username 是要删除用户的名称。 如果要删除一个用户的同删除其相关的家目录,可以使用以下命令: $ userdel -r username 其中,-r 选项表示连同用户的家目录一起删除。 3. 确认用户已被删除 删除一个用户后,我们需要确认该用户已经被成功删除。我们可以再次查看用户列表,确认该用户已不再显示。 二、删除组 1. 查看当前已有的组列表 首先,我们需要查看当前系统上已有的组列表。使用以下命令: $ cat /etc/group | cut -d : -f 1 其中,/etc/group 文件包含系统上的所有组及其详细信息,而 cut 命令则用于剪切只保留组名 2. 删除组 我们可以使用以下命令来删除一个组: $ groupdel groupname 其中,groupname 是要删除的组的名称。 3. 确认组已被删除 删除一个组后,我们需要确认该组已经被成功删除。我们可以再次查看组列表,确认该组已不再显示。 总结 以上就是在 Linux删除用户组的方法了,简单易行。需要注意的是,在删除用户或组之前,请务必确认该用户或组不再有任何依赖关系,以避免系统出现异常。另外,如果你在使用 sudo 权限的候遇到了问题,也可以尝试删除某个用户的 sudo 权限,方法删除用户差不多。 希望这篇文章能够帮到你,谢谢阅读!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值