我正在运行 Ubuntu 16.04.4 LTS 并遇到问题。突然间,我无法编辑以前可以编辑的文件,由于权限错误,我无法运行程序。
ejaz
我始终以属于主要组ejaz
和次要组的用户身份登录root
adm
cdrom
sudo
dip
www-data
plugdev
lpadmin
sambashare
kismet
wireshark
docker
。我在 的子目录中有几个网站/var/www/html/
(不是~/public_html
因为它是没有安全/共享考虑的开发机器)。以网站/var/www/html/test
为例;它属于 user:group www-data:www-data
。我以 登录ejaz
,在编辑目录中的文件时遇到权限错误test
。我似乎有正确的组权限来编辑此目录。
groups
命令输出
~ » groups ejaz
ejaz : ejaz root adm cdrom sudo dip www-data plugdev lpadmin sambashare kismet wireshark docker
test
网站权限
/var/www/html » l | grep test
drwxrwxr-x 2 www-data www-data 4.0K Apr 9 2017 test
但任何编辑都会导致权限错误
/var/www/html » cd test
/var/www/html/test » l
total 16K
drwxrwxr-x 2 www-data www-data 4.0K Apr 9 2017 .
drwxrwxr-x 87 www-data www-data 4.0K Jul 10 06:50 ..
-rw-rw-r-- 1 www-data www-data 0 Apr 9 2017 blah.html
-rw-rw-r-- 1 www-data www-data 16 Apr 9 2017 .htaccess
-rw-rw-r-- 1 www-data www-data 73 Apr 9 2017 index1.html
/var/www/html/test » touch blah.html
touch: cannot touch 'blah.html': Permission denied
id
命令输出
/var/www/html/test » id -Gn
ejaz
这是可以理解的,因为ejaz
这是主要群体。
但如果我su
这样做ejaz
,我可以在终端和从以下位置启动的任何程序中编辑文件那个特定的终端实例
问题
为什么我突然无法编辑这些文件,以前是如何编辑这些文件的?从昨天开始我所做的就是运行Ubuntu的apt升级。
任何帮助将不胜感激。
谢谢阅读。
sudo mount
命令输出
~ » sudo mount
[sudo] password for ejaz:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4021496k,nr_inodes=1005374,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=808412k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/var/lib/snapd/snaps/core_4917.snap on /snap/core/4917 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/core_4650.snap on /snap/core/4650 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/core_4830.snap on /snap/core/4830 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/pycharm-community_62.snap on /snap/pycharm-community/62 type squashfs (ro,nodev,relatime)
/var/lib/snapd/snaps/pycharm-community_60.snap on /snap/pycharm-community/60 type squashfs (ro,nodev,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
/var/lib/snapd/snaps/pycharm-community_64.snap on /snap/pycharm-community/64 type squashfs (ro,nodev,relatime)
/dev/sda4 on /mnt/SSD2 type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=808412k,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
sudo df -h
命令输出
~ » sudo df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 790M 9.3M 781M 2% /run
/dev/sda1 82G 75G 2.3G 98% /
tmpfs 3.9G 165M 3.7G 5% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/loop0 87M 87M 0 100% /snap/core/4917
/dev/loop1 87M 87M 0 100% /snap/core/4650
/dev/loop2 87M 87M 0 100% /snap/core/4830
/dev/loop4 233M 233M 0 100% /snap/pycharm-community/62
/dev/loop3 240M 240M 0 100% /snap/pycharm-community/60
/dev/loop5 237M 237M 0 100% /snap/pycharm-community/64
/dev/sda4 136G 125G 11G 92% /mnt/SSD2
tmpfs 790M 28K 790M 1% /run/user/1000
将保留块减少到 0 没有帮助
我认为值得一提的是,我经常使用 VirtualBox 在这台 PC 上运行 Windows 7。 Windows 可以访问/var/www/html/
并/mnt/SSD2/
通过 VirtualBox 共享。我已经运行 Windows 大约一年了,但这会导致权限混乱吗?
关于 Windows 对共享目录的处理程度,我专门使用 Widows 来运行 Adobe Photoshop,因此 Windows 本质上是从/mnt/SSD2
或读取一些图像/var/www/html/html
并将图像存储在/mnt/SSD2/*
.不在Windows中对共享目录进行大文件操作,例如压缩目录、提取压缩文件、移动目录、设置权限等。
模糊的文本具有以下模式。
/var/www/html/magento_site_1
/var/www/html/magento_site_1/var/session/sess_xxxxxxxxxxxxxxxxxxxxxxxxxx
/var/www/html/magento_site_1
/var/www/html/magento_site_1/var/session/sess_xxxxxxxxxxxxxxxxxxxxxxxxxx
/var/www/html/magento_site_1
/var/www/html/magento_site_1/var/session/sess_xxxxxxxxxxxxxxxxxxxxxxxxxx
/var/www/html/magento_site_1
/var/www/html/magento_site_1/var/session/sess_xxxxxxxxxxxxxxxxxxxxxxxxxx
....
是xxxxxxxxxxxxxxxxxxxxxxxxxx
一个随机字符串。截图是完整的输出。
答案1
这看起来很可疑:
/var/www/html/test » id -Gn
ejaz
该id -G
命令(带有大写 G)应该列出所有辅助组,但它似乎只显示其中之一,而且不是www-data
......
当您运行时不会发生这种情况,groups ejaz
因为您询问用户的辅助组是什么ejaz
,而不是当前活动的辅助组。您可以尝试简单地运行groups
以确认仅ejaz
存在而其他缺失。
尝试使用以下命令重置辅助组newgrp
:
newgrp
然后再次检查,id -Gn
看看groups
它是否列出了所有这些......
您还可以尝试:
newgrp www-data
这将尝试成为www-data
你的主要群体。但如果没有正确设置辅助组,这可能会失败......
(这也解释了为什么使用su
可能有助于解决此问题,因为那时您将再次重置辅助组。)
现在的问题是为什么你现在会得到这个...当你通过 SSH 连接到服务器时是否得到它?或者登录控制台(tty1,使用 Ctrl+Alt+F1 访问)?或者在图形会话上?你能检查一下它是否只影响其中之一吗?
PAM 配置中可能存在某些内容,但很难说...也许尝试挖掘在哪些情况下发生了问题,如果您可以缩小范围,请发布一个有关它的新问题。还可以查看 APT 日志以了解此升级中涉及了哪些软件包。也许查看 PAM 配置文件的时间戳,看看最近是否有更新...
祝你好运!