技术解析

问一个 Linux 的权限问题
0
2021-06-23 16:19:24
idczone
Linux 使用 lnmp 作为服务器环境,创建站点时,会使用 www:www 作为目录的创建用户;如果我希望让别人登录服务器去管理文件,但不希望给他 root 权限,应该怎么做?

因为 www:www 是 lnmp 创建的用户,好像是没有用户目录的,也不能作为登录用户使用。我试过创建另外一个用户,放在 www 用户组里,并且设置网站目录的权限为所在组可读写。但如果别人通过这个用户来登录 Linux,他所创建的文件会属于当前用户,而不是 www,这就不太方便管理了。

我是否要想办法把 www 用户设置为可登录用户?
'所创建的文件会属于当前用户,而不是 www',这样是正确的,本来这个目录就是其他用户可写的话文件当然记录为其他用户,否则才叫无迹可查。其他 nginx、php 之类设置为组可执行即可。

可以让 www 用户变为可登录吗?

useradd --help can help u!

还有 sudo 了解一下,哈哈哈哈

FACL 了解下,这个能满足你需求。
同一个文件 /目录,可递归给不同用户授予不同权限。

www 用户不可以登陆不正是这个用户产生的原因之一吗?

很简单,把代码设置成 770 即对 www 组下的用户完全控制, 再创建个账户,账户为组 www

首先作为程序文件,不一定非得是 www 用户所有才行,只要保证个别需要有写权限的目录赋与 www 写权限就好了,这样也更安全。
其实真要两个用户能同时维护一个目录,设置好目录的组权限不可以解决问题?

usermod -s /bin/bash www 这样就能登陆了

还有 acl 可以设权限,比系统的灵活很多
要么就开 ftp 或者 samba 服务器来远程管理文件,这样都不用给他系统帐号

特殊权限 guid,可以让其它用户在该目录下创建的文件的组为该目录的所属组

先登录 root 管理,执行下面命令
passwd www
usermod -s /bin/bash www

我感觉除了一些特殊的目录,比如说缓存和日志目录,其余的所属人和组就不应该给 www.给一个可登录的普通用户就好

谢谢,回来看到一堆回复真感动

如果这个网站是设计成其他人管理的,那么应该让网站属于这个人的账号(账号可以是一个共享的集体账号)。比如某个网站应该由账号 devteam 来管理,那么整个目录可以归给 devteam,然后把 www 账号加入 devteam 组,PHP pool 之类的也可以设置成以 devteam 用户权限运行。

其实最方便的办法是直接通过 ftp 账号来管理,其次添加一个用户对该网站目录有读写权限, 用 usermod 处理

如果我没有记错的话 www 用户是 nginx 或者 php 的进程的从属用户,在这些 nginx 或者 php 的配置文件的开头有写出来的,你可以修改这个用户,或者从属组就可以了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服