我是linux的新手,我试图在终端中执行一些命令。我的问题是,当我对另一个用户执行su时,我想在那里创建一个目录时,它会向我显示权限被拒绝。请帮助我理解为什么会发生这种情况,我该怎么做才能解决它。
user@user_VB:~$ sudo su
root@user_VB:~$ useradd user1
root@user_VB:~$ groupadd students
root@user_VB:~$ usermod -g people user1
root@user_VB:~$ su user1
user1@user_VB:~$ mkdir exams
现在显示:
许可被拒绝。
但如果我输入:
user1@user_VB:~$ sudo mkdir exams
它显示:
user1不在子文件中。
答案 0 :(得分:1)
所以你在这里有两个问题。
首先,您创建的新用户无法创建新目录。这是因为,即使您正在更改用户(用户 - > root - > user1),您仍然位于user
的主目录中,user1
可以&# 39;写到。您需要做的是在创建用户时指定用户目录,(useradd -d /home/user1 user1
),如@fedorqui所提到的,或者,如果您已经创建user1
,请使用{{ 1}}命令将主目录添加到usermod
,如下所示:
user1
如果usermod -d /home/user1 user1
不存在,您需要按/home/user1
执行以下操作:
root
这样做首先是创建目录,然后将其所有权分配给新创建的用户。现在,当你mkdir /home/user1
chown -R user1 /home/user1
时,你最终会进入su - user1
。您现在应该能够创建目录和文件。
您的第二个问题/home/user1
是sudo如何管理允许哪些用户使用它的结果。控制此操作的规则位于"user1 is not in suboers file."
,您应使用/etc/sudoers
进行编辑。如果您想允许visudo
使用sudo运行他们想要的任何内容,您可以添加如下所示的行:
user1
其中说用户user1 ALL=(ALL) ALL
可以以root身份在系统上运行任何命令。如果您现在尝试使用sudo作为user1
运行命令,它将提示您输入user1
的密码,然后运行该命令。