Linux操作系统下关于用户和组的配置管理指南

用户管理,主要的工作就是建立一个合法的用户帐户、设置和管理用户的密码、修改用户帐户的属性以及在必要时删除已经废弃的用户帐号。

1. 增加一个新用户

在Linux系统中,只有root用户才能够创建一个新用户,如下的命令将新建一个登录名user1的用户。

# useradd user1

但是,这个用户还不能够登录,因为还没给它设置初始密码,而没有密码的用户是不能够登录系统的。在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。如果需要另外指定用户主目录的话,那么可以使用如下命令:

# useradd -d /home/xf user1

同时,该用户登录时将获得一个Shell程序:/bin/bash,而假如你不想让这个用户登录,也就可以指定该用户的Shell程序为:/bin/false,这样该用户即使登录,也不能够执行Linux下的命令:

# useradd -s /bin/false user1

在Linux中,新增一个用户的同时会创建一个新组,这个组与该用户同名,而这个用户就是该组的成员。如果你想让新的用户归属于一个已经存在的组,则可以使用如下命令:

# useradd -g user user1

这样该用户就属于user组的一员了。而如果只是想让其再属于一个组,那么应该使用:

# useradd -G user user1

完成了这一操作后,你还应该使用passwd命令为其设置一个初始密码。

2. 删除一个用户

删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。

3. 修改用户属性

在前面我们看到了在新建一个用户的时候如何指定它的用户主目录,如何指定它的Shell,如何设置它所属的组…等等。在Linux中提供了一个命令来实现:

usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell

还有一种直接的方法,那就是修改/etc/passwd文件,在这个文件中每个用户占用一行,它的内容为:

用户名:密码:用户ID:组ID:用户全名:用户主目录:用户Shell

不过值得注意的是,密码这一项通常是用一个*号代替的,你是看不到的。

4. 增加一个组

还记得Linux的文件可以为同组的人、非同组的人设置不同的访问权限吗?我们可以根据自己的需要创建用户组:

groupadd 组名

5. 删除一个组

同样的,我们有时会需要删除一个组,它的命令就是groupdel 组名。

6. 修改组成员

如果我们需要将一个用户加入一个组,只需编辑/etc/group文件,将用户名写到组名的后面。例如将newuser用户加入到softdevelop组,只需找到softdevelop这一行:

softdevelop:x:506:user1,user2

然后在后面加上newuser,形成:

softdevelop:x:506:user1,user2,newuser

另外,在Red Hat Linux中还提供一个图形化的用户管理工具:userconf,通过它可以更直接地进行用户管理。

两个重要文件:passwd与group

在linux的安全机制里,/etc/passwd与/etc/group这两个文件占着非常重要的地位。它们控制着linux的用户和组一些重要设置。

◆/etc/passwd文件说明 (用于设置用户的属性)

可用 vi /etc/passwd 查看

在passwd的文件里,每一行被冒号(":")分成7个部分,分别是:

[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell]

其中:

[UID]虽然是系统用来标志文件归属,确定各种权限的标志,但这个区域的内容并不要求唯一的。比较常见而又与安全问题相关的一个例子是有多个UID和GID均为0的用户帐号。注意到在该文件最后一行还有一个UID和GID为0的用户imnotroot,虽然它声称自己不是root,但是它却有和root完全相同的权限,因为系统并非根据[用户名],而是根据UID和GID来分用户的权力的。所以,这种情况无疑为系统埋下了安全的炸弹。但是,当imnorroot做锁定屏幕等操作的时候,如果它的密码和root的不一样,它将无法解锁,因为系统只是查到第一个UID为0的用户(自然是root)后,就不在往下查找了——它当UID也是唯一的。

[GID]用户默认的组ID,这个ID可以在文件 /etc/group里查到对应的组名。

<注意>:[UID]和[GID]小于500的一般都是系统自己保留,不做普通用户和组的标识的,所以新增加的用户和组一般都是UID和GID大于500的。

◆/etc/group文件说明

vi /etc/group 查看其内容

它总共分四个部分:

[组名]:[密码域]:[GID]:[组员例表]

(0)

相关推荐

  • Linux rdesktop操作系统下远程登录Windows XP桌面

    发现新立得也有下载: sudo apt-get install rdesktop 或到下载rdesktop,下载后安装: $ tar -zxvf rdesktop-1.5.0.tar.gz $ cd rdesktop-1.5.0 $ ./configure $ make $ make install 终端输入 rdesktop //很详细用法说明 $ rdesktop -u username -p password ip 就可以远程登录了.username是XP当前用户 注意:登录前确认XP已开

  • Linux操作系统与命令知识汇总

    什么是操作系统呢?这个问题很简单吧!管理计算机软硬件的软件就是操作系统.操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口.操作系统的功能包括管理计算机系统的硬件.软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等.实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配资源,如:划分CPU时

  • 完美解决Linux操作系统下aes解密失败的问题

    现象描述:windows上加解密正常,linux上加密正常,解密时发生如下异常: 复制代码 代码如下: javax.crypto.BadPaddingException: Given final block not properly padded       at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)       at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)       at com

  • linux操作系统安装sql developer步骤

    1.安装 jdk 复制代码 代码如下: # cd/u01(把jdk文件放在此目录下) # chmod a+x jdk-6u41-linux-i586.bin # ./chmod a+x jdk-6u41-linux-i586.bin (提示授权说明,q跳过,然后输入yes,等待后即可完成安装) 2.打开/etc/profile,在profile文件末尾加入: 复制代码 代码如下: exportJAVA_HOME=/u01/jdk1.6.0_41 exportJAVA_BIN=/u01/jdk1.

  • 轻松解决 Linux操作系统故障恢复技巧

    不论你在运行什么操作系统,在很多情况下,你会面对灾难恢复操作.你的主引导区被覆盖,你的硬盘不能启动,或者一个重要的文件被删除,或者你的显示卡启动时闪烁一下就黑屏了.本文会就这些问题作一些技巧性的讨论,帮助你在遇到这些问题时,不致于手足无措. 首先需要的是一张应急启动软盘,在安装 Linux 时,一般会要求建立一张的,所以,你应该有这张磁盘的,如果还没有建立的话,赶紧去建立一张吧,什么?不知道怎么做?很简单的,一般的 Linux 系统下使用 mkbootdisk 命令就可以了.后面的那些参数,只要

  • 如何实现Linux操作系统的自动登录

    开机自动登录Linux,并自动运行XWindow应用程序,有其特殊的应用背景,如基于Linux平台的监控系统,Linux启动后不需要身份验证,而直接运行监控程序等等.本文以Redhat7.2为平台,结合Linux启动过程,介绍了如何避免身份验证自动登录,并直接进入X Window自动运行应用程序. 一.Linux启动的最后阶段的工作 Linux在启动过程的最后阶段(具体启动步骤略),init会根据/etc/inittab文件的最后一行x:5:respawn:/etc/X11/prefdm-nod

  • Linux操作系统口令文件安全问题详细解析

    几乎所有的类Unix操作系统的口令文件的格式都雷同,Linux亦不例外.口令安全是Linux操作系统的传统安全问题之一. 传统口令与影子口令 /etc/passwd是存放用户的基本信息的口令文件.该口令文件的每一行都包含由6个冒号分隔的7个域: username: passwd: uid: gid: comments: directory: shell 以上从左到右7个域分别叙述如下: username:是用户登陆使用的名字. passwd:是口令密文域.密文是加密过的口令.如果口令经过shad

  • Linux 操作系统下Web服务器配置详细介绍

    所的软件都放在了/home/web目录 1.MYSQL的配置过程: [root@mail web]# tar zxvf mysql-5.0.18.tar.gz [root@mail web]# cd mysql-5.0.18 [root@mail mysql-5.0.18]# groupadd mysql [root@mail mysql-5.0.18]# useradd -g mysql mysql [root@mail mysql-5.0.18]# ./configure --prefix=

  • Linux rpm tar 操作系统下软件的安装与卸载方法

    Linux操作系统下软件的安装与卸载在Windows下安装软件时,只需运行软件的安装程序(setup.install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall.unware."卸载"等)就能将软件清除干净,完全图形化的操作界面,简单到只要用鼠标一直点击"下一步"就可以了.而Linux好象就不一样了,很多的初学者都抱怨在Linux下安装和卸载软件非常地困难,没有像使用Windows时那么直观.其实在Linux下安装和卸载软件也非常简单

  • linux操作系统安装MONO执行C#程序的详解步骤

    第一步 环境(UBUNTU系统下) 复制代码 代码如下: sudo apt-get install mono-gmcs mono 第二步 建立example.cs 复制代码 代码如下: class X {static void Main () {System.Console.Write("My first mono app worked!/n"):}} 第三步 编译 复制代码 代码如下: gmcs example.cs 第四步 执行 复制代码 代码如下: ./example.exe 在

随机推荐