- 浏览: 411366 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dageda_jgw:
...
JSF定义及原理 -
尘土飞扬:
这个在NB7中已经无效了,加不加都会提示 UTF8打不开
Netbeans统一UTF-8编码的方法 -
ouyangkang20:
不对
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f) -
wpf523:
hahah,很不错啊
mysql安装图解教程 5.1 -
taburissmeng:
action中相应的属性没有set get方法就会报这样的错。 ...
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
- 摘要: 添加用户工具有Linux useradd和adduser ,这两个工具所达到的目的都是一样的,在Fedora 发行版中,Linux useradd 和adduser 用法是一样的;但在slackware发行版本中,adduser和Linux useradd 还是有所不同,表现为adduser 是以人机交互的提问的方式来添加用户。
- 标签: Linux useradd
- <script src="http://www.51cto.com/js/article/keywords_ad.js"></script>
Linux useradd已被广泛应用但是也在不断的更新,这里介绍Linux useradd安装设置使用,帮助大家安装更新Linux useradd系统Linux是一个多用户的操作系统,她有完美的用户管理工具,这些工具包括用户的查询、添加、修改,以及用户之间相互切换的工具等;通 过这些工具,我们能安全、轻松的完成用户管理;
在这里我们要引入用户控制工具的概念,比如对用户添加的useradd或adduser ,对用户删除的 userdel ,与修改用户相关信息的 usermod、chfn、chsh ,还有密码设置工具passwd 等等;这些工具只所以被称为用户控制工具,理由是她们是控制和管理用户的工具。
一、Linux useradd与用户管理相关的配置文件;
1、/etc/passwd 和/etc/groups我们对用户和用户组进行添加、修改、删除最终目的是修改系统用户 /etc/passwd和其加密资讯文件 /etc/shadows 以及用户组的 /etc/groups和其加密资讯文件/etc/gshadow。
所以对用户和用户组的添加并不仅仅是只能通过用户添加、修改、删除等用户控制工具来完成,我们还能直接修改与用户和用户组相应的配置文件来达到目 的。在 《用户(user)和用户组(group)配置文件详解》一文中,我有谈过通过修改用户及用户组配置文件的办法来添加、删除、修改用户,进而达到对系统用 户的管理;
参考文档:《Linux 用户(user)和用户组(group)管理概述》《用户(user)和用户组(group)配置文件详解》
2、超级权限控制sudo 的配置文件 /etc/sudoers ;参考文档: 《Linux 系统中的超级权限的控制》
3、添加用户规则文件 /etc/login.defs 和 /etc/default/useradd参考文档:《Linux 用户(user)和用户组(group)管理概述》
二、添加用户工具和方法;
添加用户工具有Linux useradd和adduser ,这两个工具所达到的目的都是一样的,在Fedora 发行版中,Linux useradd 和adduser 用法是一样的;但在slackware发行版本中,adduser和Linux useradd 还是有所不同,表现为adduser 是以人机交互的提问的方式来添加用户;
除了useradd和adduser工具以外,我们还能通过修改用户配置文件/etc/passwd和/etc/groups的办法来实现;当然我 们也不要忽略一些发行版独有用户管理工具,比如Fedora 中有 system-config-users 工具;这个工具比较简单,点几下鼠标就能完成;
1、useradd 工具;useradd 不加参数选项时,后面直接跟所添加的用户名时,系统时读取添加用户配置文件/etc/login.defs和/etc/default/useradd文 件,然后读取/etc/login.defs和/etc/default/useradd中所定义的规则添加用户;
并向/etc/passwd和/etc/groups文件添加用户和用户组记录;当然/etc/passwd和/etc/groups的加密资讯文 件也同步生成记录;同时发生的还有系统会自动在/etc/add/default中所约定的目录中建用户的家目录,并复制/etc/skel中的文件(包 括隐藏文件)到新用户的家目录中;
Linux useradd 的语法:
- usage: useradd[-u uid [-o]] [-g group] [-G group,...]
- [-d home] [-s shell] [-c comment] [-m [-k template]]
- [-f inactive] [-e expire ] [-p passwd] name
- useradd-D [-g group] [-b base] [-s shell]
- [-f inactive] [-e expire ]
当我们执行Linux useradd用户名 来添加用户时,我们会发现一个比较有意思的现象,新添中的用户的家目录总是被自动添加到 /home目录下,我们先举个例子;
实例一:不加任何参数,直接添加用户;
- [root@localhost beinan]# useraddbeinanlinux
- [root@localhost beinan]# ls -ld /home/beinanlinux/
- drwxr-xr-x3 beinanlinux beinanlinux 4096 11月2 15:20 /home/beinanlinux/
在这个例子中,我们添加了beinanlinux用户,我们在查看/home/目录时,会发现系统自建了一个beinanlinux的目录;我们再 来查看 /etc/passwd 文件有关beinanlinux的记录,也会有新发现;我们通过more 来读取 /etc/passwd 文件,并且通过grep 来抽取 beinanlinux字段,得出如下一行;
- [root@localhost beinan]# more /etc/passwd | grep beinanlinux
- beinanlinux:x:509:509::/home/beinanlinux:/bin/bash
从得出的beinanlinux的记录来看,以adduser 工具添加beinanlinux用户时,设置用户的UID和GID分别为509 ,并且把beinanlinux的家目录设置在 /home/beinanlinux ,所有的SHELL是 bash ; 我们再来看看 /etc/shadow、/etc/groups和/etc/gshadow 文件。
是不是也有与beinanlinux有关的行;我们还要查看/etc/default/useradd 和/etc/login.defs文件的规则,看一下beinanlinux用户的增加是不是和这两个配置文件有关;我们还要查看 /home/beinanlinux目录下的文件,是不是和/etc/skel目录中的一样;
由此我们引出我们下面所要谈的内容: Linux useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
1)/etc/default/useradd 配置文件的定义;
- Linux useradd-D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
- Linux useradd 加-D参数后,就是用来改变配置文件 /etc/default/useradd的;
- useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
当-D选项出现时,Linux useradd秀出现在的预设值,或是藉由命令列的方式更新预设值。可用选项为∶
-b default_home
注:定义用户所属目录的前一个目录。用户名称会附加在default_home后面用来建立新用户的目录。当然使用-d后则此选项无效。
-e
default_expire_date 注:用户帐号停止日期。
-f default_inactive注:帐号过期几日后停权。
-g
default_group 注:新帐号起始用户组名或ID。用户组名须为现有存在的名称。用户组ID也须为现有存在的用户组。
-s
default_shell 注:用户登入后使用的shell名称。往后新加入的帐号都将使用此shell.
如不指定任何参数,Linux useradd显示目前预设的值。
实例二:
useradd -D 如不指定任何参数,Linux useradd显示目前预设的值;
- [root@localhost beinan]# useradd -D
- GROUP = 100
- HOME =/home
- INACTIVE =-1
- EXPIRE =
- SHELL =/bin/bash
- SKEL =/etc/skel
- CREATE_MAIL_SPOOL = no
我们看一下/etc/default/useradd 文件就明白了,应该和上面的输出是一样的;所以如果我们想改变Linux useradd配置文件/etc/default/adduser 的内容,也可以用编辑器直接操作,如果你会用vi编辑器或者其它编辑器的话,这个应该不成问题吧;
实例三:
我想把添加用户时的默认SHELL /bin/bash 改为 /bin/tcsh ,则应该用下面的命令;
- [root@localhost beinan]# useradd -D -s /bin/tcsh注:把添加用户时的SHELL 改为tcsh ;
- [root@localhost beinan]# more /etc/default/useradd 注:查看是否成功;
- # useradd defaults file
- GROUP = 100
- HOME =/home
- INACTIVE =-1
- EXPIRE =
- SHELL =/bin/tcsh 注:成功;
- SKEL =/etc/skel
- CREATE_MAIL_SPOOL = no
这个-D参数的解说就这样了,也是比较简单,如果不会用命令,直接改参数配置文件总会吧;Linux解决问题是极为灵活的,就看我们怎么解决了,对 不对?
2)Linux useradd添加用户;
- useradd[-u uid [-o]] [-g group] [-G group,...]
- [-d home] [-s shell] [-c comment] [-m [-k template]]
- [-f inactive] [-e expire ] [-p passwd] name
新帐号建立,当不加-D参数,Linux useradd指令使用命令列来指定新帐号的设定值and使用系统上的预设值.新用户帐号将产生一些系统档案,用户目录建立,拷备起始档案等,这些均可以 利用命令列选项指定。此版本为RedHat Linux提供,可帮每个新加入的用户建立个别的group,毋须添加-n选项。
Linux useradd可使用的选项为
-c comment 注:新帐号 password 档的说明栏 。
-d
home_dir 注:新帐号每次登入时所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称。
-e
expire_date注:帐号终止日期。日期的指定格式为MM/DD/YY。
-f inactive_days
注:帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1
-g initial_group
注:group名称或以数字来做为用户登入起始用户组(group)。用户组名须为现有存在的名称。用户组数字也须为现有存在的用户组。预设的用户组数字
为1。
-G
group,[...]注:定义此用户为此一堆groups的成员。每个用户组使用","区格开来,不可以夹杂空白字元。用户组名同-g选项的限制。定义
值为用户的起始用户组。。
-m 注:
用户目录如不存在则自动建立。如使用-k选项skeleton_dir内的档案将复制至用户目录下。然而在/etc/skel目录下的档案也会复制过去取
代。任何在skeleton_dir or
/etc/skel的目录也相同会在用户目录下一一建立。The-k同-m不建立目录以及不复制任何档案为预设值。
-M
不建立用户目录,即使/etc/login.defs系统档设定要建立用户目录。
-n
预设值用户用户组与用户名称会相同。此选项将取消此预设值。
-r此参数是用来建立系统帐号。系统帐号的UID会比定义在系统档上/etc
/login.defs.的UID_MIN来的小。注意Linux
useradd此用法所建立的帐号不会建立用户目录,也不会在乎纪录在/etc/login.defs.的定义值。如果你想要有用户目录须额外指定-m参
数来建立系统帐号。
-s shell注:用户登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。
-u
uiduid用户的ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为以/etc/login.defs中的UID_MIN的值为
准,0到UID_MIN的值之间,为系统保留的UID ;
Linux
useradd这么多的参数看上去头有点晕,我们如何用呢??其实很简单;一个参数一个参数的试一试不就明白了??这是最好的学习方法。实践是检验真理的
唯一标准;如果Linux useradd后面直接跟用户名,不加任何参数,表示添加用户时按事先/etc/default/adduser
和/etc/login.defs 添加新用户的配置文件的规则来添加用户;其实我们为了方便,也可以把这两个文件修改以适合我们添加用户需要;
Linux useradd 为什么还需要那么多的参数呢?原因很简单,主要是为了管理员方便管理用户。Linux useradd 是灵活的,可以跳过/dev/default/adduser 和/etc/login.defs 两个配置文件中的规则来自定义添加用户;比如在用户的家目录,在/etc/default/adduser 中可能定义在/home目录下建立,如果我们的机器/home独立占一个分区,并且有点紧张,但我们又不想改变/etc/default/adduser 关于家目录的定义,这里我们就可以通过 adduser -d 参数把新增用户家目录定义到空间比较空闭的分区;
通过下面的几个例子,可能有助于我们理解Linux useradd ,其实很简单~,学习也是这样,先从简单的入手,一步一步的走过来,没有什么难的~~
实例四:
以/etc/logins.defs和/etc/default/adduser
默认的规则添加用户;[root@localhost ~]# useraddlongcpu注解:如果Linux
useradd后面直接用户名,表示系统读取 /etc/login.defs和/etc/default/adduser
配置文件,根本这两个配置文件所定义的规则来添加用户,比如用户的家目录哪里,用什么SHELL,UID和GID的分配... ...
查看/etc/passwd的新增记录,然后根据 /etc/login.defs和/etc/default/adduser
查看新增用户是否符合这两个配置文件所约定的规则;
实例五:练习参数的使用;
- [root@localhost ~]# useradd -c ChinaCpulongcpu注:添加一个新用户amdcpu ,使用参数-c;
- [root@localhost ~]# more /etc/passwd |grep longcpu 注:查看/etc/passwd 文件,并抽取longcpu的记录;
- longcpu:x:510:510:ChinaCpu:/home/longcpu:/bin/bash
注:看上去是已经有amdcpu用户了;x是密码段;UID和GID 都是510,ChinaCpu表示是什么意思? 家目录位于/home/amdcpu,SHELL是bash ;
- [root@localhost ~]# finger longcpu 注:我们查询一下amdcpu 用户的信息;
- Login: longcpu Name: ChinaCpu 注:-c ChinaCpu 表示用户真实的名字或全名;
- Directory: /home/longcpu Shell: /bin/bash
- Never logged in.
- No mail.
- No Plan.
注解:这个例子,我们做了添加用户、查看/etc/passwd 的变化; 并且通过finger 来查询longcpu用户的信息,目的是理解参数-c的用处;
参数-c 后面的就是就是UID:GID后面说明文字,这段文字中包括用户真实姓名,办公地址,办公电话等,可以通过chfn 来更改,我们可以通过chfn 来修改用户信息,然后查看 /etc/passwd 的变化,再来用finger 来查询用户信息。几个工具组合练习一下,也容易忘记;
实例六:
自定义用户的家目录、SHELL类型、所归属的用户组等;添加用户longcpu,并设置其用户真实名字为ChinaCpu,其家
目录在/opt/longcpu,让其归属为用户组 linuxsir、root、beinan成员,其SHELL类型为tcsh
;[root@localhost ~]# useradd-c ChinaCpu-d /opt/longcpu -G
linuxsir,root,beinan -s /bin/tcshlongcpu
注:添加用户longcpu ,真实名是ChinaCpu ,家目录设置在 /opt/longcpu ,是linuxsir,root,beinan 用户组成员, SHELL是tcsh ;
- [root@localhost ~]# ls -ld /opt/longcpu/ 注:是不是自动创建了longcpu的家目录?
- drwxr-xr-x3 longcpu longcpu 4096 11月4 22:30 /opt/longcpu/
- [root@localhost ~]# more /etc/passwd |grep longcpu注:查看 /etc/passwd 中是否有longcpu用户记录;
- longcpu:x:510:510:ChinaCpu:/opt/longcpu:/bin/tcsh
- [root@localhost beinan]# finger longcpu注:查询longcpu用户的信息 ;
- Login: longcpuName: ChinaCpu
- Directory: /opt/longcpuShell: /bin/tcsh
- Never logged in.
- No mail.
- No Plan.
- [root@localhost beinan]# id longcpu 注:查询UID和GID 以及所归属的用户组;
- uid = 510 (longcpu) gid = 510 (longcpu) groups = 510 (longcpu),0(root),500(beinan),502(linuxsir)
关于在添加新用户时用户组,添加用户时,如果不使用-n 参数,系统会自动建一个与用户名同名的用户组;
实例七:
练习用户有效期限;在本例中,我们主要来看看-e参数,这个参数还是比较重要的,是设定用户的帐号什么时候过期;在本例中,我们添
加了一个帐号,并且设置其帐号在 2005年11月04日之前是有效的,一旦过了这个日期,便停止其登录;
- [root@localhost ~]# useradd-e 11/04/2005 cooler注:添加用户cooler,并设置其有效期为2005年11月04日;
- [root@localhost ~]# passwd cooler注:设置用户cooler密码;
- Changing password for user cooler.
- New UNIX password: 注:设定cooler的密码;
- Retype new UNIX password: 注:核实设定密码;
- passwd: all authentication tokens updated successfully.注:设置成功;
如何验证-e 是不是真的有效?我写这篇文档的时间是 2005年11月05号,所以添加这个cooler用户肯定是过期的,就是他有密码也不能登录;有的弟兄会问,他把有效期的记录放在哪里了呢?其实我们在 以前的文档中已经说过了,是写在/etc/shadow文件中了;请参考: 《用户(user)和用户组(group)配置文件详解》
2、adduser 工具;
在Fedora 系统中,adduser和Linux useradd用法是一样的,但在 Slackware 系统中 adduser 是通过人机交互的方法来添加用户,其实和Linux useradd加各项参数来自定义添加用户所达到的目的是一样的,只不过在Slackware 中,Linux useradd是以人机交互的提问式的进行;这样我们没有必要知道那么多的参数,一样可以达到自定义添加用户;
[root@localhost ~]# adduser注:运行adduser命令;Login name for new user []: bluemoon注:添加新用户 bluemoon User ID ('UID') [ defaults to next available ]: 1200注:用户的UID ,UID 是唯一的;如果有提示说被占用,就选比较大的UID ,比如1300Initial group [ users ]: users 注:初始化用户组(或主用户组)为users,这个用户组也是可以自己定义的,但用户组必须存在,如果不存在,您可以用groupadd来添加 Additional groups (comma separated) []: root,beinan注:附加用户组,这个也是自己定义的,多个用户组之间用,号分割;Home directory [ /home/bluemoon ] 注:定义用户的家目录位置,也是可以自己定义的,比如/opt/bluemoon ; Shell [ /bin/bash ] 注:所用SHELL ,此处用的是bash ;
Expiry date (YYYY-MM-DD)
[]:注:用户的有效日期,如果不设置就直接回车,表示从不过期;如果设置就以2005-11-05这样的格式来输入;
New account
will be created as follows:注:创建的用户情况如下;
- Login name.......:bluemoon
- UID..............:1200
- Initial group....:users
- Additional groups:root
- Home directory...:/home/bluemoon
- Shell............:/bin/bash
- Expiry date......:[ Never ]
- This is it... if you want to bail out, hit Control-C.Otherwise, press
- ENTER to go ahead and make the account.
注:在这里按回车就开始创建,如果认为这样不合理,就按CTRL+C 来中断;
Creating new account... 这样就创建好了;系统会自动提示我们修改用户的信息,比如用户的全名、房间号、电话等...... 以及用户的密码;
- Changing the user information for bluemoon
- Enter the new value, or press ENTER for the default
- Full Name []: bluemoon Linux
- Room Number []: 503
- Work Phone []: 0411-8888888
- Home Phone []: 0411-9999999
- Other []:
- Changing password for bluemoon
- Enter the new password (minimum of 5, maximum of 127 characters)
- Please use a combination of upper and lower case letters and numbers.
- New password: 注:设置用户bluemoon的密码;
- Re-enter new password:注:验证一次;
- Password changed.注:设置密码成功
3、通过修改/etc/passwd 管理(添加、删除、修改)用户的方法;请参考: 《用户(User)和用户组(Group)配置文件详解》
4、添加用户组命令groupadd ;语法格式:groupadd [-g gid [-o]] [-r] [-f] group groupadd 可指定用户组名称来建立新的用户组帐号,需要时可从系统中取得新用户组值。groupadd有下列选项可用。
-g后接GID值,除非使用-o参数不然该值必须是唯一,不可相同,数值不可为负,预设值以/etc/login.defs为准;
-r此参数是用来建立系统帐号的GID会比定义在系统档文件上/etc/login.defs 的GID_MIN来的小。注意Linux useradd此用法所建立的帐号不会建立使用者目录,也不会纪录在/etc/login.defs.的定义值。如果你想要有使用者目录须额外指定-m参 数来建立系统帐号,它会自动帮你选定一个小于的GID_MIN的值,不需要再加上-g参数。
-fThis is force
flag.新增一个已经存在的用户组帐号,系统会出现错误讯息然后结束groupadd。如果是这样的情况,不会新增这个用户组(如果是这个情况下,系统
不会再新增一次) 也可同时加上-g选项,当你加上一个GID,此时GID就不用是唯一值,可不加-o参数,建好用户组后会显结果(adding a
group as neither -g or -o options were specified)。
其实增加用户组的,用起来还是
简单一点为好;比如下面的例子,添加GID为666的用户组google;[root@localhost ~]# groupadd -g 666
google
三、passwd 设置或修改用户密码;
1、passwd 简单说明;
我们已经学会如何添加用户了,所以我们还要学习设置或修改用户的密码;passwd命令的用法也很多,我们只选如下的几个参数加以说明;想了解更 多,请参考man passwd或passwd --help ;
passwd [OPTION...] passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码;passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子;
- [root@localhost ~]# passwd 注:没有加任何用户,我是用root用户来执行的passwd 表示修改root用户的密码;下面也有提示;
- Changing password for user root.
- New UNIX password:注:请输入新密码;
- Retype new UNIX password:注:验证新密码;
- passwd: all authentication tokens updated successfully.注:修改root密码成功;
如果是普通用户执行passwd 只能修改自己的密码;如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建;
- [root@localhost ~]# passwd beinan注:更改或创建beinan用户的密码;
- Changing password for user beinan.
- New UNIX password:注:请输入新密码;
- Retype new UNIX password:注:再输入一次;
- passwd: all authentication tokens updated successfully.注:成功;
普通用户如果想更改自己的密码,直接运行passwd即可;比如当前操作的用户是beinan;
- [beinan@localhost ~]$ passwd
- Changing password for user beinan. 注:更改beinan用户的密码;
- (current) UNIX password: 注:请输入当前密码;
- New UNIX password: 注:请输入新密码;
- Retype new UNIX password: 注:确认新密码;
- passwd: all authentication tokens updated successfully.注:更改成功;
2、passwd 几个比较重要的参数;
[root@localhost beinan]# passwd --help
Usage: passwd [OPTION...]
-k,
--keep-tokenskeep non-expired authentication tokens
注:保留即将过期的用户在期满后能仍能使用;
-d, --delete delete the password for the named
account (root only)注:删除用户密码,仅能以root权限操作;
-l, --locklock the named
account (root only)注:锁住用户无权更改其密码,仅能通过root权限操作;
-u, --unlock unlock
the named account (root only)注:解除锁定;
-f, --forceforce operation
注:强制操作;仅root权限才能操作;
-x, --maximum=DAYSmaximum password lifetime (root
only) 注:两次密码修正的最大天数,后面接数字;仅能root权限操作;
-n, --minimum=DAYSminimum
password lifetime (root only)注:两次密码修改的最小天数,后面接数字,仅能root权限操作;
-w,
--warning=DAYSnumber of days warning users receives
before注:在距多少天提醒用户修改密码;仅能root权限操作;password expiration (root only)
-i,
--inactive=DAYS number of days after password expiration when
an注:在密码过期后多少天,用户被禁掉,仅能以root操作;
account becomes disabled (root only)
-S,
--status report password status on the named account (root
注:查询用户的密码状态,仅能root用户操作;only)
--stdin read new tokens from stdin (root
only)
比如我们让某个用户不能修改密码,可以用-l 参数来锁定:
- [root@localhost ~]# passwd -l beinan注:锁定用户beinan不能更改密码;
- Locking password for user beinan.
- passwd: Success注:锁定成功;
- [beinan@localhost ~]# su beinan注:通过su切换到beinan用户;
- [beinan@localhost ~]$ passwd注:beinan来更改密码;
- Changing password for user beinan.
- Changing password for beinan
- (current) UNIX password: 注:输入beinan的当前密码;
- passwd: Authentication token manipulation error注:失败,不能更改密码;
再来一例:
- [root@localhost ~]# passwd -d beinan注:清除beinan用户密码;
- Removing password for user beinan.
- passwd: Success 注:清除成功;
- [root@localhost ~]# passwd -S beinan注:查询beinan用户密码状态;
- Empty password.注:空密码,也就是没有密码;
注意: 当我们清除一个用户的密码时,登录时就无需密码;这一点要加以注意;
3、chage 修改用户密码有效期限的命令;
chage 用语法格式:chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告] [-I 失效日] [-E 过期日] [-d 最后日] 用户前面已经说的好多了,这个只是一笔带过吧,知道有这个命令就行,自己实践实践再说,大体和psswd有些参数的用法差不多;
四、删除用户和用户组的工具, userdel和 groupdel 介绍 ;
1、userdel 用法;
userdel 的语法格式:userdel [-r] 名称 userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有两个用户bnnb和lanhaitun,其家目录都位 于/home目录中,现在我们来删除这两个用户;
- [root@localhost ~]# userdel bnnb注:删除用户bnnb,但不删除其家目录及文件;
- [root@localhost ~]# ls -ld /home/bnnb注:查看其家目录是否存在;
- drwxr-xr-x14 501 501 40968月 29 16:33 /home/bnnb注:存在;
- [root@localhost ~]# ls -ld /home/lanhaitun 注:查看lanhaitun家目录是否存在;
- drwx------4 lanhaitun lanhaitun 4096 11月5 14:50 /home/lanhaitun 注:存在;
- [root@localhost ~]# userdel -rlanhaitun注:删除用户lanhaitun,其家目录及文件一并删除;
- [root@localhost ~]# ls -ld /home/lanhaitun注:查看是否在删除lanhaitun 用户的同时,也一并把其家目录和文件一同删除;
- ls: /home/lanhaitun: 没有那个文件或目录注:已经删除;
警告: 请不要轻易用-r参数;他会删除用户的同时删除用户所有的文件和目录,切记;如果用户目录下有重要的文件,在删除前请备份;
其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc /passwd 是极为重要的文件,可能您一不小心会操作失误;
2、groupdel的用法;groupdel 是用来删除用户组的;语法格式:groupdel 用户组比如:[root@localhost ~]# groupdel lanhaitun
五、修改用户的工具介绍;
我们前面已经多次说过用户配置文件的重要性了,其实我们无论怎么改,都是改与用户相关的配置文件;如果我们与用户相关的配置文件的规则,可以直接修 改配置文件,在这里就不再多说了,请参看相关文档吧,谢谢;
1、chfn 修改用户信息工具;
chfn 这个工具主要是用来改用户的全名,办公室地址,电话之类的;用法如下:chfn [ -f full-name ][ -o office ][ -p office-phone ][ -h home-phone ] [ -u ] [ -v ] [ username ]最简单的方法是chfn 用户名
- [root@localhost ~]# chfn beinanlinux注:更改用户beinanlinux的信息;
- Changing finger information for beinanlinux.
- Name []: BeiNan.Linux注:用户全名BeiNan.Linux ,随便写一个就行;
- Office []: ChinaDL
- Office Phone []: 66666666
- Home Phone []: 99999999
- Finger information changed.注:更改完成;
我们怎么能知道更改好了呢??可以通过finger 或直接查看/etc/passwd文件;
- [root@localhost ~]# finger beinanlinux
- Login: beinanlinux Name: BeiNan.Linux
- Directory: /home/beinanlinux Shell: /bin/bash
- Office: ChinaDLHome Phone: 99999999
- Last login Sat Nov5 11:27 (CST) on tty2
- No mail.
- No Plan.
- chfn 究竟改了/etc/passwd 文件中beinanlinux用户的哪部份呢??
- [root@localhost ~]# more /etc/passwd |grep beinanlinux
- beinanlinux:x:509:509:BeiNan.Linux,ChinaDL,66666666,99999999:/home/beinanlinux:/bin/bash
通过more /etc/passwd ,然后来抽取 beinanlinux记录,看一下红字标出的,就是我们通过chfn 修改过的地方,所以我们可以直接通过修改/etc/passwd文件来达到目的;
2、chsh 改变用户的SHELL类型;
- [root@localhost ~]# chsh --help
- Usage: chsh [ -s shell ] [ --list-shells ] [ --help ] [ --version ] [ username ]
如果chsh 不加任何参数及用户名的情况下,默认为更改当前操作用户的SHELL类型;
举例说明:
- [root@localhost ~]# chsh --list-shells注:列出当前系统中所有的SHELL;
- /bin/sh
- /bin/bash
- /sbin/nologin 注:这个是不允许用户登录系统所用,是极为有用的;您可以通过查看/etc/passwd 中看哪些用户是nologin;
- /bin/ksh
- /bin/tcsh
- /bin/csh
- /bin/zsh
- [root@localhost ~]# finger beinanlinux |grep Shell注:查看用户beinanlinux 所用的SHELL类型;
- Directory: /home/beinanlinux Shell: /bin/bash 注:beinanlinux用的是bash ;
- [root@localhost ~]# chsh -s /bin/ksh beinanlinux注:更改beinanlinux所用的shell 为ksh ;
- Changing shell for beinanlinux.
- Shell changed. 注:更改完成;
- [root@localhost ~]# finger beinanlinux |grep Shell注:再次查询beinanlinux所用的SHELL;
- Directory: /home/beinanlinux Shell: /bin/ksh注:看来已经改过来了;
chsh 还是有用的,特加是不允许用户登录时,我们可以把用户的SHELL改到 /sbin/nologin;系统中一些虚拟用户大多是不能登录系统的,这对于系统安全来说是极为重要;通过下面的命令查看一下系统中哪些用户是没有登录 权限的?[root@localhost ~]# more /etc/passwd |grep nologin
3、usermod 用户修改工具(极其强大)
usermod 不仅能改用户的SHELL类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。usermod
如此看来就是能做到用户帐号大转移;比如我把用户A改为新用户B;
usermod[-u uid [-o]] [-g group] [-G
group,...]
[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]
[-f 失效日] [-e
过期日] [-p 密码] [-L|-U] 用户名
usermod
命令会参照你命令列上指定的部份修改系统帐号档。下列为usermod可选用的参数。
-c
comment更新用户帐号password档中的注解栏,一般是使用chfn(1)来修改。
-d
home_dir更新用户新的登入目录。如果给定-m选项,用户旧目录会搬到新的目录去,如旧目录不存在则建个新的。
-e
expire_date 加上用户帐号停止日期。日期格式为MM/DD/YY.
-f inactive_days
帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1。
-g initial_group
更新用户新的起始登入用户组。用户组名须已存在。用户组ID必须参照既有的的用户组。用户组ID预设值为1。
-G group,[...]
定义用户为一堆groups的成员。每个用户组使用","区格开来,不可以夹杂空白字元。用户组名同-g选项的限制。
如果用户现在的用户组不再此
列,则将用户由该用户组中移除。
-l
login_name变更用户login时的名称为login_name。其它不变。特别是,用户目录名应该也会跟着更动成新的登入名。
-s
shell指定新登入shell。如此栏留白,系统将选用系统预设shell。
-u
uid用户ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于/etc/login.defs中定义的UID_MIN值。
0到UID_MIN值之间是传统上保留给系统帐号使用。用户目录树下所有的档案目录其userID会自动改变。放在用户目录外的档案则要自行手动更动。
警告:usermod不允许你改变正在线上的用户帐号名称。当usermod用来改变userID,必须确认这名user没在电脑上执行任何程序。
你需手动更改用户的crontab档。也需手动更改用户的at工作档。采用NISserver须在server上更动相关的NIS设定。
举
个简单的例子,我们在前面说了关于Linux useradd的工具,而usermod 工具和Linux
useradd的参数差不多;两者不同之处在于Linux useradd是添加,usermod 是修改;[root@localhost ~]#
usermod -d /opt/linuxfish -m -l fishlinux -U linuxfish注:把linuxfish
用户名改为fishlinux ,并且把其家目录转移到 /opt/linuxfish ;
[root@localhost ~]# ls -la /opt/linuxfish/ 注:查看用户fishlinux的家目录下的文件及属主;总用量 48
- drwxr-xr-x 3 fishlinux linuxfish 4096 11月5 16:46 .
- drwxrwxrwx29 rootroot4096 11月5 16:48 ..
- -rw-r--r-- 1 fishlinux linuxfish 24 11月5 16:46 .bash_logout
- -rw-r--r-- 1 fishlinux linuxfish191 11月5 16:46 .bash_profile
- -rw-r--r-- 1 fishlinux linuxfish124 11月5 16:46 .bashrc
- -rw-r--r-- 1 fishlinux linuxfish 5619 11月5 16:46 .canna
- -rw-r--r-- 1 fishlinux linuxfish438 11月5 16:46 .emacs
- -rw-r--r-- 1 fishlinux linuxfish120 11月5 16:46 .gtkrc
- drwxr-xr-x 3 fishlinux linuxfish 4096 11月5 16:46 .kde
- -rw-r--r-- 1 fishlinux linuxfish0 11月5 16:46 mydoc.txt
- -rw-r--r-- 1 fishlinux linuxfish658 11月5 16:46 .zshrc
[root@localhost ~]# more/etc/passwd |grep fishlinux注:查看有关fishlinux的记录;fishlinux:x:512:512::/opt/linuxfish:/bin /bash通过上面的例子,我们发现文件的用户组还没有变,如果您想改变为fishlinux用户组,如果想用通过 usermod来修改,就要先添加fishlinux用户组;然后用usermod -g 来修改 ,也可以用chown -R fishlinux:fishlinux /opt/finshlinux 来改;
警告: usermod 最好不要用它来改用户的密码,因为他在/etc/shadow中显示的是明口令;修改用户的口令最好用passwd ;
[root@localhost
~]# usermod -p 123456 fishlinux注:修改fishlinux的口令是123456 ;
[root@localhost
~]# more /etc/shadow |grep
fishlinux注:查询/etc/shadow文件中fishlinux的口令;我们看到明显是没有加密;
fishlinux:123456:13092:0:99999:7:::
4、
userinfo 图形介面的修改工具;userinfo
系统普通用户都能调用,但都是修改当前操作用户的;还是点鼠标完成吧,多点几下就OK了。[root@localhost ~]# userinfo
六、
后记;
本文档勉强有了个形,修正是肯定的了;在修正的同时,我会计划与下一篇文档,可能会写文件与权限方面的。但愿我能坚持住;生活总是枯燥的,但这并不 会影响我写文档的心情。每当写完一个文档,虽然仅有几个弟兄支持,但我还是很开心。我整天自以为是大侠了,大侠只是我的一个梦想吧。谁让我学的是文科呢?
七、关于本文;
本文写起来比超级权限控制那篇文档要容易点,毕竟只是用户控制工具的介绍;从文字量来看好象很大,但文字量的大小并不能说明什么问题,只有初学者能 读得懂才是好文档。由于篇幅较长,我会慢慢修正,当然弟兄们的修正,我是极为欢迎的,谢谢;
【编辑推荐】
发表评论
-
Linux中cp总是提示覆盖文件的解决办法
2010-07-31 15:28 2915把a目录下的文件复制到b目录cp –r a/* ... -
linux下查看内存使用情况
2010-07-03 11:38 2057在Linux下查看内存我们一般用free命令: f ... -
Linux下判断cpu物理个数,几核,是超线程还是多核心
2010-07-03 11:27 97501. 查看物理CPU的个数#cat /proc/cpuinfo ... -
Linux Load average负载详细介绍
2010-05-13 23:19 5572也许你在学习Linux操作 ... -
FTP服务配制 vsftp linux
2010-05-05 19:32 1663添加用户: adduser -g ftp -d /home/ ... -
Linux 用户(user)和用户组(group)管理概述
2010-05-05 16:42 1016摘要: 本文主要讲述在Linux 系统中用户(user) ... -
FTP权限与目录权限的对应关系
2010-05-05 16:17 1570FTP权限与目录权限的对应关系: ... -
linux下目录和文件的权限区别
2010-05-05 16:04 1900文件:读文件内容(r)、写数据到文件(w)、作 ... -
Linux目录和文件权限查看及修改
2010-05-05 15:51 5189查看目录和文件的权限 ... -
Linux下提供top、ps命令查看当前cpu、mem使用情况
2010-05-04 14:11 10423Linux下提供top、ps命令查看当前cpu、mem使用 ... -
正确理解Linux内存占用过高的问题
2010-05-04 11:26 5648最近有个月经问题,老有人问为何开机后,还没有其他服务,mem就 ... -
Linux 用户(user)和用户组(group)管理概述
2010-04-30 14:46 827Linux 用户(user)和用户 ... -
vsftp的使用 之 帐号的创建
2010-04-30 14:07 2985如果要以系统中存在的普通用户登入FTP,也没 有什么可以设置 ... -
unzip命令,linux下解压zip
2010-04-26 17:30 1782linux自带的unzip命令可以解压windows下 ...
相关推荐
07.2 用户和用户组管理-用户管理相关文件.mp4 07.3.1 用户和用户组管理-用户管理命令-useradd.mp4 07.3.2 用户和用户组管理-用户管理命令-passwd.mp4 07.3.3 用户和用户组管理-用户管理命令-usermod和chage.mp4 ...
用户管理控制工具最终目的也是为了修改用户配置文件。 用户查询和管理控制工具的重要性: 用户查询和管理控制工具对系统管理员来说非常重要,因为它们可以帮助系统管理员更好地管理系统用户。用户查询和管理控制...
所以我们进行用户管理的时候,直接修改用户配置文件一样可以达到用户管理的目的。 /etc/shadow 文件是用户资讯的加密文件,比如用户的密码口令的加密保存等;/etc/passwd 和 /etc/shadow 文件是互补的;我们可以通过...
Linux用户管理主要通过修改配置文件进行,包括用户查询、添加、修改和删除。常用命令有id、finger、useradd、adduser、passwd、usermod等。关键的用户配置文件有/etc/passwd和/etc/shadow。/etc/passwd文件包含了...
Linux系统中用户的配置文件通常存放在`/etc`目录下,重要的用户配置文件包括`/etc/passwd`和`/etc/shadow`,前者存储用户的基本信息,后者则存储用户的加密密码。 使用`useradd`命令来添加用户,如示例中的`useradd...
在这个实验中,学生需要掌握的命令包括`useradd`、`chage`、`umask`、`nohup`和`wget`,以及对`/etc/skel`、`/etc/default/useradd`等配置文件的理解和使用。同时,实验也强调了错误排查和问题解决的过程,这对于...
本文将详细解释Linux环境下与用户管理相关的操作命令,帮助读者更好地理解并掌握这些核心技能。 #### 一、用户管理相关配置文件 在Linux系统中,用户信息主要存储在以下几个配置文件中: 1. **/etc/passwd**:此...
7.2 用户和用户组管理-用户管理相关文件 7.3.1 用户和用户组管理-用户管理命令-useradd 7.3.2 用户和用户组管理-用户管理命令-passwd 7.3.3 用户和用户组管理-用户管理命令-usermod和chage 7.3.4 用户和用户组管理-...
本文将详细解析如何通过配置文件实现Oracle 11g的静默安装,以提高效率并减少手动操作错误。 首先,了解静默安装的概念。静默安装,也称为无人值守安装,是指在不进行用户交互的情况下完成软件的安装过程。它通过...
Linux操作系统用户管理是确保系统安全、稳定运行的关键环节。Linux作为一个多用户、多任务的操作系统,用户管理和权限控制是其核心特性。本文主要探讨了在Linux中如何进行用户账号的管理、用户属性的改变以及口令的...
在Linux操作系统的学习中,理解和掌握用户及用户组管理、用户权限、Shell变量、算数和逻辑运算、配置文件以及grep和基本正则表达式是非常重要的基础。这些知识点构成了Linux日常管理和运维的核心技能。 首先,我们...
本课件"Linux基础课件新增用户useradd命令共10页.pdf"将深入讲解如何使用`useradd`命令来添加新的系统用户,包括其工作原理、参数选项以及相关的用户管理概念。 `useradd`命令的基本语法是: ```bash useradd [选项...
6. **用户配置文件**: - `/etc/passwd`:存储所有用户的基本信息,包括用户名、用户ID、组ID、主目录和shell类型。 - `/etc/group`:记录所有用户组及其成员信息。 - `/etc/shadow`:保存加密密码,提高系统安全...
7.2 用户和用户组管理-用户管理相关文件 7.3.1 用户和用户组管理-用户管理命令-useradd 7.3.2 用户和用户组管理-用户管理命令-passwd 7.3.3 用户和用户组管理-用户管理命令-usermod和chage 7.3.4 用户和用户组管理-...
通过对Linux系统文件存取管理的学习,我们可以了解到Linux系统如何通过用户账号管理、文件权限控制等方式确保数据的安全性。同时,通过搭建FTP服务并使用FlashFXP等工具,用户可以方便地进行文件的上传和下载操作,...
【Linux用户管理】是Linux操作系统中的核心组成部分,它涉及到系统的安全性、稳定性以及资源的有效利用。在Linux环境下,用户管理主要包括创建、修改、删除用户和用户组,以及对用户权限和磁盘空间的管理。以下是对...
在用户管理脚本中,可能需要将输出结果保存到文件,或者从配置文件中读取用户信息。 4. **权限和权限控制**:在Linux中,每个文件和目录都有所有者、组和其他用户的权限。使用`chmod`命令可以改变文件的权限,这...
在Linux系统中,用户信息存储在几个关键的配置文件中: 1. `/etc/passwd`:这个文件包含了所有用户的基本信息,如用户名、UID、GID、用户主目录和默认shell。 2. `/etc/shadow`:存储加密后的用户密码,增强了安全性...
在 Linux 系统中,有多个配置文件、命令或目录与用户和用户组相关。例如: * /etc/passwd:用户配置文件,记录了所有用户的信息,例如用户名、密码、家目录等。 * /etc/group:用户组配置文件,记录了所有用户组的...
在Linux系统中,用户管理和用户组管理是非常关键的安全措施之一。通过合理地配置用户和用户组,系统管理员可以有效地控制用户对系统资源的访问权限,确保系统的稳定性和安全性。 #### 二、用户账号管理 ##### 1. ...