Linux manage user

来源:互联网 发布:淘宝售后维修申请 编辑:程序博客网 时间:2024/05/21 22:23

Linux系统中存在两种用户:系统用户与普通用户。

系统中的每一个用户都有一个ID,就像身份证号一样,它是区分用户的唯一标志。默认的系统用户UID范围(0~499),普通用户的UID范围(500~60000)

Linux的系统用户如:daemon, mail, lp, nobody等。大多数是不能登录的,因为他们的登录shell为/sbin/nologin。
用户默认配置信息是从/etc/login.defs文件中读取

当系统管理员添加一个用户的时候,此时系统会将此用户的相关信息写入相关的文件中。在登录用户时就会读取这些文件。
用户基本信息文件:/etc/passwd
用户密码等安全信息文件:/etc/shadow

用户基本信息文件
/etc/passwd

可以用cat查看它的内容
例:Lonny:x:501:502::/home/Lonny:/bin/bash
用户名:密码:UID:GID:用户描述:用户主目录:用户登录Shell
该文件的访问权限是:rw-r--r--,即任何用户可以查看此文件的内容。所以在默认情况下,系统不会将密码存放到此文件中,而是系统中的影子文件中:/etc/shadow

用户密码等安全信息
/etc/shadow
例:Lonny : $1DvUPrnt : 13072 : 0 : 99999 : 7 :2: 13108 :
账号名称:密码:上次更动密码的日期 :密码不可被更动的天数 :密码需要重新变更的天数 :密码需要变更期限前的警告期限 :账号失效期限 :账号取消日期 :保留用 

管理员也可以通过执行指令pwconv与pwunconv来选择将密码放入/etc/shadow 还是放入/etc/passwd中。
该文件的权限为:r--------,即只有root用户才可以操作此文件。

2、组

Linux系统每一个用户都要属于一个或多组,有了用户组,我们就可以将用户添加到组中去,这样就方便了管理员对用户的集中管理。
Linux系统中组也分为普通用户组与系统组两大类。
当一个用户属于多个组时,这些组中只能有一个作为该用户的主属组,其它组就被称为此用户的次属组

系统组信息文件与用户信息文件类似,它包括组基本信息文件(/etc/group)与组密码信息文件(/etc/gshadow)。

/etc/group
grp1 : x : 500 : lonny , redhat 
群组名称:群组密码 :群组 ID :组里面的用户成员

/etc/gshadow
grp1:CZsU5Mq8LVJKo::lonny,redhat
用户组名:用户组密码:用户组管理员的名称:成员列表
管理员也可以通过指令grpconv与grpunconv来选择将密码放入/etc/gshadow 还是放入/etc/group中

3、命令行管理用户和组

添加用户

指       令:useradd
语      法:useradd [选项]   <用户名>
常用选项
-c <备注> 加上备注文字
-d <目录>   指定用户登入时的启始目录 
-e <有效期限> 指定帐号的有效期限
-f <缓冲天数> 指定在密码过期后多少天即关闭该帐号
-g <群组>   指定用户主属组 
-G <群组>   指定用户所属的附加群组
-m /-M    自动建立(-m)用户的登入目录或不自动创建
-n     取消建立以用户名称为名的群组
-r     建立系统帐号
-s <shell>    指定用户登入后所使用的shell
-u <uid>   指定用户ID

[root@station99 ~]# ls /home/
lost+found mysql redhat
[root@station99 ~]# useradd redhat1
[root@station99 ~]# ls /home/
lost+found mysql redhat redhat1

上面是建立用户 redhat1 , 选项全部默认,系统就在/home目录下生成了redhat1的家目录

[root@station99 ~]# useradd -c testuser -d /home/testuser -g redhat redhat2
[root@station99 ~]# ls /home/
lost+found mysql redhat redhat1 testuser

以上是建立用户 redhat2 ,-c给他起了个别名“testuser”,-d把他的家目录定为 “/home/testuser” -g把他的主属组定为redhat(这个redhat组必须是存在的组)

[root@station99 ~]# useradd -s /sbin/nologin redhat3

建立用户redhat3 , -s把他的登录shell 定为 nologin ,这样redhat3是不能登录系统的

删除用户

指       令:userdel
语      法:userdel [选项]   <用户名>
常用选项
-r 删除用户登入目录以及目录中所有文件(建议删除用户时带上此选项)

例如 userdel -r redhat

修改用户信息

指       令:usermod
语      法:usermod [选项]   <用户名>
常用选项
-c:改变用户的描述信息。
-d:改变用户的主目录,如果加上-m则会将旧家目录移动到新的目中去 (-m应加在新目录之后) 。
-e:设置用户帐户的过期时间(年-月-日)。
-g:改变用户的主属组。
-G:设置用户属于那些组。
-l:改变用户的登录用名。
-s:改变用户的默认shell。
-u:改变用户的UID。
-L:锁住密码,使密码不可用。-U:为用户密码解锁。

组的简单管理

系统用户可以直接修改/etc/group文件达到管理组的目的,也可以使用以下指令:
groupadd:添加一个组。
groupdel:删除一个已存在组(注:不能为主属组)。
groupmod –n <新组名> <原组名> :为一个组更改名字
gpasswd –a <用户名> <用户组>:将一个用户添加入一个组。
用户可用newgrp指令来临时改变用户的主属组(注:被改变的新主属组中应该包括此用户)。
例:如果用户redhat的主属组为redhat,并且此用户又是grp1组里面的成员,那么这个用户可以临时的改变当前的主属主为grp1。
$newgrp grp1

关于用户身份查询

用户可以使用下列指令了解用户身份
who:查询当前在线的用户
w:查询当前在线用户的详细信息
groups:查询用户所属的组
id:显示当前用户id信息
finger:查询用户信息、登录时间、邮件

另外,在 rhel 系统里还有一个图形界面的用户和组管理工具,打命令:system-config-users 来打开它


groupadd:

1.作用
groupadd命令用于将新组加入系统。
2.格式
groupadd [-g gid] [-o]] [-r] [-f] groupname
3.主要参数
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。
4.应用实例
建立一个新组,并设置组ID加入系统:
groupadd -g 344 cjh
此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。


useradd:

1.作用
useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户。
2.格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
3.主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。 
-d:指定用户登入时的启始目录。 
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。
4.说明
useradd可用来建立用户账号,他和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。
5.应用实例
建立一个新用户账户,并设置ID:
#useradd caojh -u 544
需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特别用户,一般0到499之间的值留给bin、mail这样的系统账号。

#useradd oracle -g oinstall -G dba

新创建一个oracle用户,这初始属于oinstall组,且同时让他也属于dba组。

#useradd zcx �0�2-d /var/ftp/service -s /sbin/nologin

无法使用shell,且其用户目录至/var/ftp/service

chown:

使用权限 : root

  使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...

  说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者 (root)才有这样的权限。

  参数格式 :

  user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)

  -c : 若该档案拥有者确实已经更改,才显示其更改动作

  -f : 若该档案拥有者无法被更改也不要显示错误讯息

  -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案

  -v : 显示拥有者变更的详细资料

  -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

  --help : 显示辅助说明

  --version : 显示版本 

  范例 :

  将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :

  chown jessie:users file1.txt

原创粉丝点击