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
- Linux manage user
- user manage
- oracle user manage
- Oracle manage user
- User and Privilege Manage
- How to manage Oracle Database User profile
- Manage Linux ISO image files.
- Manage CPU cores in Linux
- How To Manage User Privileges Programmatically in Windows NT
- How To Use the GitLab User Interface To Manage Projects
- sql 2017-11-21 system manage user role right test
- linux 登陆弹出 manage smart cards
- How to manage multiple passwords on Linux
- manage .deb package in linux (ubuntu) dpkg
- linux add user/ delete user
- ios basic:1.1 design a user interface(学习在stoaryboard上build and manage views )
- linux User Mode linux
- Use "Module" to manage your Linux working env
- juqery--siblings
- Source insight快捷键及使用技巧
- 导出数据库BLOB图片
- Delphi CxGrid 汇总(3)
- 记一次服务器迁移,包括jira、svn
- Linux manage user
- Delphi CxGrid 汇总(4)
- Spring注解_详解
- DateTool工具类
- 使用Kickstart安装脚本全自动快速部署CentOS 6.0
- UIWebView加载本地pdf、doc等文件
- 暴雪公司有个经典的字符串的hash公式
- FLEX/验证
- matlab自带滤波器函数小结(图像处理)