Ubuntu用户管理操作

Linux是一个用户权限管理得很严格的系统,Ubuntu作为最受欢迎的桌面发行版,提供了简单易用的图形界面工具来管理用户,但是命令行工具往往更强大,用得熟练的话效率会更高。用户管理命令常用的有如下几个:

useradd
这个命令用于添加用户,相比图形界面工具,它可以指定用户文件夹,所属群组等。如果执行useradd
-D不加任何其它参数,bash将返回当前创建用户的默认选项,如果附加其他参数,那么这个命令就会把新建用户的默认配置更新到当前值。-p选项可以设置
密码,-s选项可以设定shell,-u选项可以设定UID。

userdel 这个命令用于删除用户,如果不加附加参数,则默认只删除用户,如果加上-r参数,则同时删除用户目录和用户帐户。

passwd 这个命令用于修改用户密码,也可以修改群组密码。常用附加参数如下:
-l 效果相当于usermod -L,会禁用用户账户,需要root权限。
-u 效果相当于usermod -U,用于回复被禁用的账户,需要root权限。
-g 修改组密码。
-d 关闭用户的密码认证功能,使其在登录时不需要输入密码,需要root权限。

usermod 这个命令用于更改用户属性,-s可以更改用户shell,-u可以更改UID,如果用户已登录,就不可以更改用户属性。

chsh 这个命令用于更改用户的shell。

w 这个如此简单的命令可以返回系统当前登录用户的详细状态,如果w username就可以返回特定用户的状态。

ac 这个命令可以返回用户总的连接时间,它从/var/log/wtmp文件中获取信息,这个命令貌似Ubuntu没有自带,需要安装acct软件包。

last 这个命令从/var/log/wtmp中获取信息,可以列出从该文件创建起所有用户的登录记录。

lastb 这个命令可以列出所有登录失败的记录,在系统安全方面有一定作用。

Ubuntu下用户管理命令基本就是这么多,熟练掌握会比图形界面效率高很多。

来源:http://www.shunix.com/ubuntu-users-admin-681/

UBUNTU 用户及用户组管理

创建组:

Java代码  

  1. $sudo addgroup ccache

创建用户:

Java代码  

  1. $sudo useradd ccache -g ccache -M

创新wfz用户并创建HOME目录,指定用户组为ccache

Java代码  

  1. $sudo useradd wfz -g ccache -m

增加已存在用户到指定组

Java代码  

  1. $sudo adduser $USER ccache
  2. $sudo adduser dbh ccache
  3. $sudo adduser paul ccache
  4. $sudo adduser wfz ccache

显示用户ID及组信息:

Java代码  

  1. ~$ id
  2. uid=1001(dbh) gid=1001(dbh) groups=115(admin),1001(dbh)
  3. $ cat /etc/group
  4. ccache:x:1002:dbh,paul,wfz

1. 用户和用户组的管理:

Linux的多用户概念是指多个用户同时可以使用这个系统。

(1)用户帐号文件——passwd

Passwd
是一个文本文件(每一行标识1个用户),定义了系统的用户帐号,该文件位于“/etc”目录下。文件中包含了一个系统帐户列表,存放了每个账户一些有用的
信息,如用户ID,组ID,主目录,shell等等(用“:”分隔开来)。只定义了用户帐号,而不保存口令(用“x”表示,如果没有
sun::则表示没有密码)。真正的密码存放在Shadow文件中,普通用户根本不能读,加密后的密文无法读到就可以提高用户帐号的安全性。

例如:

Java代码  

  1. [root@sun root]# head /etc/passwd

root:x:0:0:root:/root:/bin/bash 表示有7个字段:登录名:有无口令:用户ID:组ID:账户备注信息:用户Home目录:登录时用户shell的名称(超级用户有权限修改)

(2)用户口令文件——shadow

每行定义了一个用户信息,行中各字段用:分开,为进一步提高安全性,口令文件存放用户已经加密的口令:*,特殊符号

Java代码  

  1. [root@sun root]# head /etc/shadow

登录名:加密的口令(用*或其他特殊字符表示):上次更改口令距离1970.1.1的天数:口令更改后不可更改的天数:口令更改后必须再更改的天数(有效期):口令失效前警告用户的天数:口令失效后距帐号被查封的天数:帐号被封时距1970.1.1的天数:保留未用。

(3)用户组帐号文件——group

用户组:逻辑的组织用户帐号的集合的方式,用户允许在其组内共享文件,系统每个文件都有一个用户和附属的用户组。使用“ls -l”命令可以查看每个文件的属性和组。

Java代码  

  1. [root@sun root]# head /etc/group

root:x:0:root,tom,mary (组名:组加密口令:GID:组成员列表(用,隔开的每个组用户名))

(4)用户组口令文件——gshadow

用于定义用户组口令,用户组管理员信息。该文件只有超级用户root才可以读取

每行记录信息:

Java代码  

  1. [root@sun root]# head /etc/gshadow

用户组:用户组加密口令:组管理员帐号(管理员有权进行增删帐号):组成员列表

2. 用户和用户组账户维护的命令:

(1)增加用户账户:useradd 用户名

useradd –g 组名 用户名 指定该用户所使用的私有组名,默认是与用户帐号同名的私有组。

useradd –D [-g group][-b base][-s shell][-f inactive][-e expire] 用于显示和设置useradd该命令所使用的默认值。

例如:#useradd sun //建立用户帐号

#tail -l /etc/passwd //查询passwd中添加的用户账户的信息

#tail –l /etc/shadow

#ls /home //查看所建立帐号的主目录

(2)修改用户帐号属性:usermod [-LU][-c ][-d ][-e ][-f ][-g ][-G][-l][-s][-u][用户帐号]

(3)删除用户帐号:userdel [-r][用户帐号] //如果不加参数则只删除用户帐号,不删除文件,否则两者都删除。

userdel [-r][用户帐号] //-r用来删除帐号登入目录和目录中所有文件

举例:#grep sun /etc/passwd //查询用户帐号sun是否存在

#userdel sun //删除用户帐号sun

#grep sun /etc/passwd //再次查询用户帐号sun是否存在

#ll –d /home //查询用户sun主目录是否存在

#userdel –r sun //删除用户的同时,删除其工作主目录

(4) 增加用户组帐号:groupadd [-r][组帐号]

【注意】帐号ID唯一,数值不可为负,预设最小值不得小于500,且每增加一个,组帐号ID逐次自增1。其中-r参数是用来建立系统帐号的。0~499是给系统帐号准备的。

举例:#groupadd magicSun //建立组账户magicSun

#grep magicSun /etc/group //查询group文件中magicSun组账户是否建立

#groupadd –r sysWang //建立系统组账户sysWang

#grep sysWang /etc/group //查询group文件中sysWang系统组账户是否建立

(5)修改组帐号:groupmod [-g ][-n][群组名称]

其中-o表示重复使用群组识别码

(6)删除组帐号:groupdel [群组名称]

【注意】必须先删除组中的用户才能删除该组

(7) 口令维护:passwd [-s][-l][-u][-d][用户名]
超级用户可以为每一位新增的用户设置口令,普通用户只能用不带参数的passwd命令来修改自己的口令。其中参数-s表示用于查询指定用户帐号的状
态,-l用户锁定帐号的口令,-u解锁帐号口令,-d删除指定帐号的口令。

(8)组用户成员维护:将一个账户添加到组、或将一个账户从组中删除、将一个账户设为组管理员。

添加用户到组:gpasswd –a 用户帐号名 组帐号名

从组中删除用户:gpasswd –d用户帐号名 组帐号名

设置用户为组管理员:gpasswd –A 组管理员用户列表 用户组

(9)用户和组的状态命令:

id [选项] [用户名称] 用于显示用户当前UID,gid以及所属群组的组列表

[选项]参数有:

-g :显示用户所属群组的id

-G:显示用户所属附加群组的id

-n:显示用户所属群组或附加群组的名称

-r:显示实际ID

-u:显示用户ID

whoami 用于显示登录者自身的名称(=id -un)

su [-flmp] [-][-c ][-s][用户帐号]
//用来将当前用户转换为其他用户身份,暂时变更自己的登录身份,用其他人的身份来登录系统。前提是必须知道对方的口令。其中参数-c表示执行完指定的指
令后恢复原来的身份。-f适用于csh和tsch,使shell不用去读取启动文件。-表示改变身份时也同时变更工作目录,以及
HOME,SHELL,USER,LOGNAME,此外也会变更PATH环境变量。-m,-p 变更身份时不变更环境变量。-s
指定要执行的shell。若不指定要变更的用户账户,那么预设为root超级用户。

groups [用户名称] 用于显示指定用户所属的组,若未指定用户则显示当前用户所属组

来源:http://my.oschina.net/zhangqingcai/blog/32094

更多: https://help.ubuntu.com/13.04/serverguide/user-management.html

runlevel

查看当前的运行级别,Ubuntu 桌面默认是2。

runlevel

Ubuntu 的系统运行级别:

0        系统停机状态
1        单用户或系统维护状态
2~5      多用户状态
6        重新启动
S

切换运行级别,执行命令:

init [0123456Ss]

即在 init 命令后跟一个参数,此参数是要切换到的运行级的运行级代号,如:用 init 0 命令关机;用 init 6 命令重新启动。

whois
功能说明:查找并显示用户信息。
语  法:whois [帐号名称]
补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。

---------------------------------------------------------

whoami

功能说明:先似乎用户名称。
语  法:whoami [--help][--version]
补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
参  数:
--help  在线帮助。
--version  显示版本信息。

---------------------------------------------------

who

功能说明:显示目前登入系统的用户信息。
语  法:who [-Himqsw][--help][--version][am i][记录文件]
补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的    终端机,登入时间以及从何处登入或正在使用哪个X显示器。
参  数:
-H或--heading  显示各栏位的标题信息列。
-i或-u或--idle  显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m  此参数的效果和指定"am i"字符串相同。
-q或--count  只显示登入系统的帐号名称和总人数。
-s  此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w或-T或--mesg或--message或--writable  显示用户的信息状态栏。
--help  在线帮助。
--version  显示版本信息。

----------------------------------------------------

w

功能说明:显示目前登入系统的用户信息。
语  法:w [-fhlsuV][用户名称]
补充说明:执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w
指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
参  数:
-f  开启或关闭显示用户从何处登入系统。
-h  不显示各栏位的标题信息列。
-l  使用详细格式列表,此为预设值。
-s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V  显示版本信息。

-----------------------------------------------------

finger命令

finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的
用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。

该命令的一般格式为:
finger [选项] [使用者] [用户@主机]
命令中各选项的含义如下:
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p 除了不显示.plan文件和.project文件以外,与-l选项相同。 

[例]在本地机上使用finger命令。

Java代码  

  1. $ finger xxq
  2. Login: xxq Name:
  3. Directory: /home/xxq Shell: /bin/bash
  4. Last login Thu Jan 1 21:43 (CST) on tty1
  5. No mail.
  6. No Plan. 
  7. $ finger
  8. Login Name Tty Idle Login Time Office Office Phone
  9. root root *1 28 Nov 25 09:17

……

------------------------------------------------------------------

/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名

修改当前用户所属组的方法
usermod 或者可以直接修改 /etc/paaawd文件即可

----------------------------------------------------------------

vlock(virtual console lock)
功能说明:锁住虚拟终端。
语  法:vlock [-achv]
补充说明:执行vlock指令可锁住虚拟终端,避免他人使用。
参  数:
-a或--all  锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
切换终端机的功能一并关闭。
-c或--current  锁住目前的终端阶段作业,此为预设值。
-h或--help  在线帮助。
-v或--version  显示版本信息。

--------------------------------------------------------

1、id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组;

id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和GID等;id 用法极为简单;我们举个例子说明一下;语法格式: id [参数] [用户名]

至于有哪些参数,自己查一下 id --help 或man id ;如果id后面不接任何参数和任何用户,默认显示当前操作用户的用户名、所归属的用户组、UID和GID等;

实例一:不加任何参数和用户名;

Java代码  

  1. [beinan@localhost ~]$ id
  2. uid=500(beinan) gid=500(beinan) groups=500(beinan)

注解:在没有加任何参数的情况下,查询的是当前操作用户的用户名、UID 、GID 和所处的主用户组和附属用户组;在本例中,用户名是beinan,UID是500,所归属的主用户组是beinan,GID是500 ;


实例二: id 后面接用户名;

如果我们想查询系统中用户的UID和GID 相应的内容,可以直接接用户名,但用户名必须是真实的 ,能在/etc/passwd中查到的;

Java代码  

  1. [beinan@localhost ~]$ id linuxsir
  2. uid=505(linuxsir) gid=502(linuxsir) groups=502(linuxsir),0(root),500(beinan)

注解:查询用户linuxsir 的信息,用户linuxsir ,UID 为505,所归属的主用户组是linuxsir,主用户组的GID是502;同时linuxsir用户也是GID为0的root用户组成员,也是GID为500用户组beinan的成员;

这个例子和实例一在用户组方面有所不同,我们在 《Linux 用户(user)和用户组(group)管理概述》
中有提到;用户和用户组的对应关系,可以是一对一、一对多、多对一、或多对多的交叉关系,请参考之;另外您还需要掌握《用户(user)和用户组
(group)配置文件详解》一文;

时间: 2024-10-18 16:43:00

Ubuntu用户管理操作的相关文章

ubuntu用户管理与权限操作实例

ubuntu用户管理与权限操作实例 昨天在转载此文时提到都要把文件及目录权限的操作也会独立成文来给大家介绍,今天特地学习了用户管理和权限操作的例程,现总结如下.这些命令基本都是我在自己电脑上运行过后能够实现此功能,我才把他们加进来,希望对大家有所帮助,也希望和大家多交流^_^ 一个实例 例子:假设有两个用户bill和jane,他们都有音乐CD集,并要创建一个共享目录,在该目录下他们各自存储自己的音乐文件.此时用户bill通过sudo获得了超级用户权限. 首先,创建一个以bill和jane为成员的

AUTH 用户管理操作

AUTH的实现是用抽象类来实现的,一个类,对应多种不同的验证方式. 先来介绍一个抽象类,很有借鉴意义: 实现一个猴子类,狗类,以及后面可其他类. 通常可以用抽象类和接口实现: 但是我们不直接定义具体的类,我们把所有猴子类,狗类的特征放在不同的config里面,同过抽象类方法来 初始话一个对象. config.php 1 <?php 2 return array( 3 'driver'=>'monkey',//调用那个类. 4 'index'=>'Ani',//其他. 5 ); confi

MongoDB快速入门学习笔记7 MongoDB的用户管理操作

1.修改启动MongoDB时要求用户验证加参数 --auth 即可.现在我们把MongoDB服务删除,再重新添加服务 mongod --dbpath "D:\work\MongoDB\data" --logpath "D:\work\MongoDB\log\mongodb.log" --install --serviceName "MongoDB" --auth 2.创建用户,并使用创建的用户登录打开shell操作界面,默认test数据,再查看所

ubuntu用户相关操作

ubuntu用户相关 (下面的命令一般需要加sudo或切换到root账户下!) useradd -m newusername 添加新用户 passwd username 添加或修改密码 userdel -r username   删除用户(不加-r删不干净) whoami 查看当前登入的用户 su username 用户切换,不加用户名为切换到管理员 cat /etc/passwd查看所有的用户信息 相关问题: 新建的用户不能使用sudo的问题 在/etc/sudoers中添加一行. 原文地址:

Bmob用户管理操作

注册用户 BmobUser bu = new BmobUser(); bu.setUsername("sendi"); bu.setPassword("123456"); bu.setEmail("[email protected]"); //注意:不能用save方法进行注册 bu.signUp(this, new SaveListener() { @Override public void onSuccess() { // TODO Auto-

SElinux用户管理操作

查看当前用户上下文 id -Z 查看登陆的用户和其对应的SELinux用户 semanage login -l 改变用户和SELinux的对应关系 semanage login -a选项能改变,-s用来指定SELinux用户 例子: 首先,查看likaiming用户下的上下文 id -Z 执行如下命令改变用户likaiming登陆时绑定的SELinux用户 semanage login -a -s staff_u likaiming 杀死用户likaiming pkill -KILL -u li

使用IntelliJ IDEA开发SpringMVC网站(四)用户管理

原文:使用IntelliJ IDEA开发SpringMVC网站(四)用户管理 摘要 通过对用户表的管理,更加深入地讲解SpringMVC的操作. 目录[-] 文章已针对IDEA 15做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码. 七.用户管理 1.JPA操作定义 2.后台管理 (1)查看所有用户 (2)添加用户 (3)查看用户详情 (4)修改用户信息 (5)删除用户 转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) . 注:在阅读本文前,请先阅读:

Java EE 学习(8):IDEA + maven + spring 搭建 web(4)- 用户管理

转载:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生) 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 web(1) ava EE 学习(6):IDEA + maven + spring 搭建 web(2)- 配置 Spring Java EE 学习(7):IDEA + maven + spring 搭建 web(3)- 配置数据库 记录: 通过对用户表的管理,更加深入地讲解SpringMVC的操作. 6 用户管理 既然我们

MySQL常用操作(2)MySQL用户管理、常用sql语句、 MySQL数据库备份恢复

                MySQL用户管理 创建一个普通用户并且授权 1.grant all on *.* to 'user1' identified by 'passwd'; grant all on *.* to 'user1' identified by '123456'; (创建user1用户,all表示所有权限(读.写,增.删.改.查等):*.*,前面的*表示所有的数据库,后面的*表示所有的表:identified by后面跟密码,要用单引号''引起来) grant all o