手动创建用户的全过程:需要管理员权限。

1.在/etc/group中添加用户所属组的相关信息。如果用户还有辅助组则在对应组中加入该用户作为成员。

2.在/etc/passwd和/etc/shadow中添加用户相关信息。此时指定的家目录还不存在,密码不存在,所以/etc/shadow的密码位使用“!!”代替。

3.创建家目录。cp -r /etc/skel /home/user_name。

4.修改家目录及子目录的所有者和属组。

chown -R user_name:user_name /home/user_name

5.修改家目录及子目录的权限。例如设置组和其他用户无任何权限但所有者有:chmod -R go= /home/user_name

到此为止,用户已经创建完成了,只是没有密码,所以只能su,不能登录。

6.生成密码。使用openssl passwd -1 -salt '12345678'生成使用md5算法的密码,此时要求输入密码,然后将生成的密码复制到/etc/shadow对应用户的密码位。

其中-1是指md5,-salt '12345678'是使用8位的字符创建密码的杂项,8位字符任意指定。虽然新版本的passwd文件中的算法是SHA512(6),但也支持md5(1)。

这里也可以使用passwd命令直接修改密码。

7.测试手动创建的用户是否可以正确登录。

以下为步骤:请千万记得备份这些相关文件。

;/     /*备份这几个文件*/
echo "userX:x:666" >> /etc/group
echo "userX:x:666:666::/home/userX:/bin/bash" >> /etc/passwd
echo 'userX:!!:17121:0:99999::::' >> /etc/shadow
cp -r /etc/skel /home/userX
chown -R userX:userX /home/userX
chmod -R go= /home/userX
'

测试使用userX是否可以登录。

如果是使用openssl passwd创建的密码。那么使用下面的方法将这部分密码替换到/etc/shadow中。

field=$(cat /etc/shadow | cut -d":" -f2)
password=$(openssl  -salt )
sed -i '$s%'$field'%'$password'%' /etc/shadow

Linux不使用useradd创建用户的更多相关文章

  1. useradd 创建用户

    useradd 创建用户 1.命令功能 useradd 创建一个新用户或者更改默认新用户信息. 2.语法格式 useradd  option  username useradd  -D  option ...

  2. Linux系统下批量创建用户

    Linux批量创建用户 [root@ldapserver ~]# ) ; do useradd -d /home/ldapuser$i ldapuser#i; done [root@ldapserve ...

  3. 在Linux下给mysql创建用户并分配权限及问题解决方案

    在linux下安装mysql请参考在linux系统中安装mysql服务器详细步骤 1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql ...

  4. Linux下给mysql创建用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  5. Linux下给mysql创建用户并分配权限

    // fe_group 用户名// fe 数据库名// 123456 密码 1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> ...

  6. Linux(centos)创建用户并分配权限

    创建名为 elas的用户 adduser elas 初始化elas的密码 passwd elas 显示 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新. 进行授权 个 ...

  7. 6、Linux基础--文件类型、属性信息、创建用户与用户组

    笔记 1.晨考 1.解析映射文件 /etc/hosts 2.磁盘挂载文件 /etc/fstab 3.设置开机自启动脚本的步骤 1.修改/etc/rc.local 2.设置可执行权限 chmod +x ...

  8. Linux运维六:用户管理及用户权限设置

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...

  9. Linux思维导图之用户、组和权限

    安全3A: Authenticanion认证:验证用户身份; 授权授权;依据身份进行不同权利的分配.Acouting | 劲舞团审计:监督工作. user:id -u 令牌:(护符)ID号 .Linu ...

随机推荐

  1. CentOS MySQL 配置

    问题: MySQL安装后root用户无法连接,提示 ERROR 1045 (28000): Access denied for user ’root’@’localhost’ (using passw ...

  2. JS 深度拷贝 Object Array

    JS 深度拷贝 Object Array function cloneObj(o) { var isArray = o instanceof Array; var isObject = o insta ...

  3. ionic 启用sass

    转入ionic项目目录,命令行下执行:ionic setup sass 提示编译器未装: You have specified Ionic CI to set up sass.However, you ...

  4. 【学】React的学习之旅3 - 添加事件(onClick)

    button除了用<input type="button">之外,还可以直接用<button></button>来创建,而2个标签的中间的内容就 ...

  5. Javascript 技巧集(1)

    1. 数组克隆, 使用 slice() 方法 var a1 = [1,2,3,4]; var a2 = a1.slice(); 2. 强制将变量值转化为 bool 类型,前置双感叹号 !! var a ...

  6. float和double在内存中的存储方式

    本文转载于:http://wenku.baidu.com/link?url=ARfMiXVHCwCZJcqfA1gfeVkMOj9RkLlR9fIexbgs9gDdV8rIS48A1_xe1y6YgX ...

  7. Bash Shell 获取进程 PID

    转载地址:http://weyo.me/pages/techs/linux-get-pid/ 导读 Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运 ...

  8. Unity关于脚本前面的勾选框

    今天做项目时需要在某个事件条件下禁用某个脚本,但是突然发现这个脚本前面没有勾选框,,,就像这样 网上搜了下,原来是需要在脚本中加上void Start()方法,即使这个方法里什么都没有 void St ...

  9. 数据结构与算法(1)支线任务2——Basic Calculator

    题目:https://leetcode.com/problems/basic-calculator/ Implement a basic calculator to evaluate a simple ...

  10. 区分LocalStorage和偏好数据

    偏好数据类似于web.config或者session,cookie之类的值,一般用于保存一些状态值,不推荐大量的数据通过此方式存储 Local Storage不仅可以寸字符串,还可以寸JSON对象