linux用户管理的命令及手动添加用户

简介:
    什么是用户呢?用户就是一组权限的集合。通过赋予不同用户不同的权限,使用户能执行不同的任务,实现用户管理。
 
    Linux中我们不仅要学会用命令实现用户管理,而且要知道这些命令怎么实现这个功能,修改了什么文件。下面我介绍一下常用的几个文件:
1,/etc/passwd
    存放用户相关信息,每一行为一个用户,每行有7组信息,每组信息由“:”隔开。例:
 
    username:x:UID:GID:comment:homedirectory:shell
 
    username:用户名
 
    x:用户的密码,这个文件中用“x”表示,密码存放在/etc/shadow中
 
    UID:用户标识符。用户分为系统管理员,系统用户,基本用户。系统管理员
 
    为“0”,系统用户的范围为“1-499”,普通用户为“500-65535”
 
    GID:组标识符。
 
    comment:用户的描述信息(可以为空)。
 
    homedirectory:用户家目录
 
    shell:用户的shell
2,/etc/shadown
    存放用户经过加密的密码及其相关信息。每行为一个用户,每行有9组信息,每
 
组信息用“:”隔开,例
 
    username:encrypted password:D1:D2:D3:D4:D5:D6:D7
 
    username:用户名
 
    encrypted password:经过加密的密码。默认情况下Linxu用MD5进行加密。加
 
密后的密码格式为$1$12345678$1234567890123456789012,其中$1表示用MD5进行加
 
密;$12345678:用户设定密码时,系统会自动给密码加一些杂质,以保证即使用户
 
有相同的密码,文件中存放的密码也不相同,保证用户密码的安全性;
 
$1234567890123456789012:经过加密的密码。
   
    D1:从1970年1月1日到现在密码最近的一次改变时间
   
    D2:密码的最短使用时间
   
    D3:密码的最长使用时间
   
    D4:密码过期前多少天对用户发送警告
   
    D5:在用户密码过期后多长时间账户被禁止
   
    D6:从1970年1月1日开始多长时间内用户的账号被禁止 
   
    D7:保留域
3,/etc/group
   
    存放组相关的信息。每行为一个组,每行有4组信息,每组信息用“:”隔开。
 
    groupname:x:GID:username
   
    groupname:组名
   
    x:组的密码,此文件中用“x”表示,密码存放在/etc/gshadow中
   
    GID:组标识符
   
    username:把此组作为附加组的用户名
 
4,/etc/gshadow
 
    存放组密码等相关信息。每行为一个组,每行有4组信息,每组信息用哪
 
个“:”隔开。例:
   
    groupname:encrypted password:admins:users
   
    groupname:组名
 
    encrypted password:经过加密的密码
   
    admins:用逗号隔开的组管理员
   
    users:用逗号隔开的组成员
 

一,用户管理命令

 
    1,useradd:   添加用户命令
 
    useradd [options] username
 
    常用选项:
   
    -r 添加系统用户
 
    -u 设置UID
 
    -g 设置GID(指定的基本组必须事先存在,要不会报错)
 
    -c 设置用户的全名
 
    -d 设置家目录(这个目录不能存在,如果存在会报错)
 
    -s 设置SHELL
 
    -G grp1,grp2...  指定用户的附加组
 
    -M 不创建家目录
 
    -m 必须创建家目录
 
    -D 查看或设定用户创建时形成的默认信息
 
2,usermod    改变用户相关信息
 
    usermod [options] username

    常用选项:
 
    -u UID

    -g 基本组或GID
 
    -G 指定附加组,可以有多个
 
    -d 指定家目录
 
    -s 指定shell
 
    -l 更改用户名
 
    -L 锁定用户账号
 
    -U 解锁用户账号
 
    -o 可以使用户名和存在的用户名重名,和-u一起用
 
3,passwd    用于对用户加密码
 
    passwd username
 
    常用选项:
 
    -l  对用户上锁 
 
    -u  对用户解锁
 
    -strin   可以通过管道把字符串传给用户做密码
 
4,userdel     删除用户(默认不删除家目录)
 
    userdel [options] username
 
    -r 删除时一并删除家目录
 
5,groupadd    添加组
 
    groupadd [options] groupname
 
    常用选项:
 
    -g 指定GID
 
    -r 把此组添加为系统组,系统用户无家目录(useradd -r把此组添加为系统用
 
户)
 
6,groupmod    改变组的相关信息
 
    groupmod [options] groupname
 
    -g   改GID
 
    -n   改组名
 
7,gpasswd   给组设定密码
 
    gpasswd groupname
 
8,groupdel    删除组
 
    groupdel groupname
 
9,chown   改变文件的属主,属组
 
    chown  属主:属组  文件
 
    -R 改变影响到目录中所有文件
 
    --reference 参照文件的权限进行修改
 
   格式有:
 
   chown fedora:linux lee
 
   chown fedora.linux lee
 
   chown :linux lee
 
   chown --reference=functions lee 把lee以functions为模板改变其属主,属组 
 
10,chmod  改变文件的权限
 
   chmod [options] filename
 
   chmod:改变文件的权限(如果对象是目录,默认只改变目录本身)
 
   -R 可以递归修改,如果对象是目录,目录中的文件都修改
 
   --reference 参照文件的权限进行修改
 
   格式有:
 
   chmod u+r,g+w,o+x lee  给用户加读权限,给组加写权限,给其他用户加执行
 
   权限(u:代表用户;g:代表组;o:代表其他用户;a:代表全部)
 
   chmod a=            lee  设置属组,属组,其他用户的权限为空
 
   chmod u=rw,g=x     lee  设置属主的权限为读写,属组为执行
 
11,id  查看显示目前登陆账户的uid和gid及所属分组及用户名
id [-gGnru][--help][--version] [用户名称]
-g或--group  显示用户所属群组的ID。 
-G或--groups  显示用户所属附加群组的ID。 
-n或--name   显示用户,所属群组或附加群组的名称。 
-r或--real   显示实际ID。 
-u或--user   显示用户ID。 
-help         显示帮助。 
-version     显示版本信息
 
12,chfn  改变用户的一些详细注释信息,全名等。
 
13,chsh   改变用户的shell
chsh [options] username
-s  改变用户的shell 
-l  显示系统可用的shell  
 

二,手动添加用户

例:建立一个用户slackware,属组为slackware,UID=5000,GID=5000
1,vim /etc/group
增加一行:slackware:x:5000:
2,vim /etc/passwd
增加一行:slackware:x:5000:5000:test user:/home/slackware:/bin/bash
3,openssl passwd -1 -salt 12345678     这个用于生成用MD5加密的密码(然后会
提示让输入密码)
4,vim /etc/shadow
增加一行:slackware:粘贴上步生成的密码:::::::
5,cp -r /etc/skel /home/slackware
chown -R slackware:slackware slackware
chmod -R go= slackware
 









本文转自 leejia1989 51CTO博客,原文链接:http://blog.51cto.com/leejia/774443,如需转载请自行联系原作者
目录
相关文章
|
5天前
|
NoSQL 关系型数据库 MySQL
Linux学习记录---(1、基本命令)
该博客文章提供了Linux系统中基本命令的使用记录,包括文件和目录操作、Redis服务管理、MySQL数据库操作以及Tomcat服务器的启动和检查。
Linux学习记录---(1、基本命令)
|
3天前
|
Linux
会玩这10个Linux命令,一定是个有趣的IT男!
会玩这10个Linux命令,一定是个有趣的IT男!
|
6天前
|
运维 Ubuntu Linux
Linux系统之ncdu命令的基本使用
【8月更文挑战第8天】Linux系统之ncdu命令的基本使用
14 2
Linux系统之ncdu命令的基本使用
|
12天前
|
数据可视化 Linux 测试技术
7zip压缩工具的Linux命令
本文介绍了如何在Linux系统中使用7zip压缩工具,包括通过brew安装、使用基本命令进行文件压缩、解压、列出存档内容、测试存档完整性以及进行性能基准测试等操作。
49 3
7zip压缩工具的Linux命令
|
2天前
|
安全 Linux 开发者
Linux笔记之ldd命令详解
`ldd`命令是Linux环境下一个非常实用的工具,用于显示一个程序运行时所需的共享库依赖。它帮助开发者和系统管理员快速诊断程序运行问题,特别是在处理"找不到库文件"或者"错误的库文件版本"等错误时。然而,出于安全的考虑,对于不信任的可执行文件,应该慎用 `ldd`命令,可以考虑使用其他工具如 `objdump`。总的来说,懂得如何妥善且安全地使用 `ldd`,对于维护一个稳定和高效的Linux系统来说,是非常重要的。
18 9
|
3天前
|
Linux Shell
linux命令
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
4天前
|
移动开发 运维 网络协议
运维必备 | Linux netstat命令详解
运维必备 | Linux netstat命令详解
|
4天前
|
Linux
真香~ Linux vi常用命令汇总!
真香~ Linux vi常用命令汇总!
|
4天前
|
Linux Shell
linux命令
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
7天前
|
运维 安全 Linux
【超实用秘籍】Linux文件传输新高度:10个scp命令让你瞬间变身文件传输达人,从此告别繁琐操作!
【8月更文挑战第13天】文件传输是运维工作的核心部分,尤其对Linux用户来说,了解高效且安全的传输方法非常重要。本文介绍10种scp命令的应用技巧,涵盖基础文件传输、密钥认证、目录复制等场景,助你灵活运用这一基于SSH协议的安全工具。从简单的文件传输到复杂的多主机文件迁移,scp都能轻松应对。通过本文的学习,你将能更熟练地使用scp命令,提高工作效能。
27 6