Skip to content

创建用户

创建用户

Note

建议各小组用户创建在各小组所分配的硬盘中

方案 1

#创建用户
useradd idata -m -d /data5/home/idata -s /bin/bash
#配置默认密码 tNXbVhUu
passwd idata

#更新信息到数据库
cd /var/yp
make

#免密登录
su - idata
bash /idata/software/LinuxTools/nopasswduser

方案 2(待完善)

#目前仅配置了生信组,其他组复制一份替换其中的路径即可
bash /idata/software/LinuxTools/adduser_sx

共享目录

方案一:创建 777 的共享目录(最简单)

  • 直接在 home 目录下,创建一个 share 文件夹,赋予 777 权限
# 1. 在/home目录下创建share文件夹
sudo mkdir /data5/home/share

# 2. 设置目录权限为777(所有用户可读、写、执行)
sudo chmod 777 /data5/home/share

# 3. 验证权限设置
ls -ld /home/share
# 输出应显示类似:drwxr-xr-x 2 root root 6  8月 25 11:46 share/

方案二:同一个用户组

场景:

  • 用户 A 在自己的目录下有一个文件夹,希望其他人可以访问、进行各种操作

最终效果:

  • 用户 A 在自己的目录下,创建一个文件夹
  • 默认情况下,除了 A 用户,其他任何人都不可以访问该文件夹
  • 但如果设置该文件夹归属于“用户组 B”
  • 那么以后,只要是属于用户组 B 的用户,都可以访问该目录

操作:

  • 假设用户 A 创建的文件夹路径为 /home/userA/test
# 1.创建用户组
sudo groupadd <用户组名>
sudo groupadd sx   # 创建一个sx组

# 2.添加用户到用户组
sudo usermod -aG sx <用户名>
sudo usermod -aG sx sjwang # 将sjwang添加到sx组

# 3.使组更改生效
newgrp <用户名>
newgrp sx  # 刷新

# 4. 确保用户A的家目录有适当权限
## 不修改的话,组内用户连/home/userA都进不去,即家门口都进不去,更不要说进入更下面的文件夹
sudo chmod 751 /home/userA

# 5. 设置文件夹归属为目标组,并设置权限
sudo chown -R :sx /home/userA/test  # 让文件夹 /home/userA/test 属于sx组。
sudo chmod -R 2770 /home/userA/test      # 设置 setgid + 770 权限
## 770:所有者+组可读/写/执行,其他用户无权限
## 2:即setgid 位,如果没有 setgid 位,用户sjwang在当前test文件夹下创建新文件时,新文件的归属不会是共享组,这会导致组内其他用户无法访问
## 简单来说,设置后,在test目录下创建的任何新文件或子目录,都会自动继承父目录test的组,这样同一个组内的成员都可以访问

# 6. 验证设置
ls -ld /home/userA/test
# 应该显示:drwxrws--- 2 userA sx 4096 [日期] /home/userA/test
# 注意:权限中的 's' 表示 setgid 位已设置


#补充:
## 1.权限数字含义
7 = (4) + (2) + 执行(1)
770 = 所有者(7) + (7) + 其他用户(0)
751 = 所有者(7) + (5) + 其他用户(1) # 1能保证其他用户有能cd进用户的家目录 (x 权限),不配置的话有时候ssh会报错,因为 SSH 服务进程可能需要以其他用户身份访问家目录。所以才是751而不是750
## 2.chown语法
chown -R 用户:用户组 目标文件夹
# 完整写法如上,但是如果只想改变文件夹所属的用户组,而不改变所属的用户,就把用户部分去掉,即:
chown -R :用户组 目标文件夹
# 所以chown -R :sx /home/userA/test 没有写错,这样写表示只改变用户组,而不改变所属用户
  • 补充命令:
# 查看用户所属的组
## 如果不输入用户名,查看的就是当前用户
groups <用户名>

如何在 Linux 中列出某个组的所有用户 3 种简单方法]

# 查看用户组内有哪些用户
getent group <组名>

方案三:方案一+方案二

  • 即直接在 home 目录下,创建一个 share 文件夹
  • 但是,只有组内的人可以访问,防止非组内人员删除文件
# 1. 创建专用用户组
sudo groupadd sharegroup

# 2. 添加需要访问共享目录的用户到组中
sudo usermod -aG sharegroup user1

# 3. 创建共享目录
sudo mkdir -p /data5/home/share

# 4. 设置目录所有者和组
sudo chown :sharegroup /data5/home/share

# 5. 设置权限
sudo chmod 2775 /data5/home/share  # setgid + 所有者与组有完全权限,其他用户只读

# 6. 验证设置
ls -ld /data5/home/share
# 应该显示:drwxrwsr-x 2 root sharegroup 4096 [日期] /data5/home/share

赋予 sudo 权限

Ubuntu 三种方法给用户添加 sudo 权限

  • root 权限才可赋予 sudo 权限
# 查看sudo组内有哪些用户
getent group sudo

# 添加sudo权限
usermod -aG sudo <用户名>

# 移除sudo权限
deluser <用户名> sudo
本文阅读量  次
本站总访问量  次
Authors: wangshangjian (83.54%), Wind (16.46%)