ubantu执行sudo chown -R username xxx(文件夹)命令失效
环境:win11 + vmware17.5.2 + ubantu20.04
问题背景:
最近在新电脑上配置了ubantu20.04环境,并且设置了与windows共享文件夹。设置完后共享文件夹显示锁标记(文件夹的权限对当前用户设置为只读)。
需求:解决文件夹上锁的问题
于是尝试通过以下命令将文件夹所有者从root改为当前用户,执行没有错误,但文件访问权限并未改变,文件夹还是处于上锁状态
sudo chown -R saonon /home/saonon/shareWindows/
当时挂载文件夹是通过以下命令进行挂载的,这种方式默认挂载的共享文件夹的所有者为root
sudo mount -t cifs -o username=admin,password=123 //192.168.1.100/saonon_Linux ~/windows_share
链接 windows下设置共享文件夹供Ubantu访问_windows访问ubuntu共享文件夹-CSDN博客
原因分析—为什么 chown 不能修改所有者?
1、CIFS 是 Windows 的文件共享协议,Linux 不能直接修改 Windows 文件的所有者。
2、Windows 共享文件的权限是由 Windows 服务器 管理的,Linux 只能按挂载参数来访问。
3、默认情况下,挂载的共享文件夹所有者是 root,你无法用 chown 直接更改。
解决方法:既然 chown 无效,可以通过挂载时指定用户 ID(UID)和组 ID(GID),让当前用户成为所有者。以此解决对当前用户上锁的问题
1、通过id "用户名"(如id admin)获取用户的uid和gid
2、重新挂载共享文件夹
(1)先卸载
sudo umount ~/windows_share
(2)使用uid和gid重新挂载,让当前用户成为文件所有者
sudo mount -t cifs -o username=admin,password=123,uid=1000,gid=1000 //192.168.1.100/saonon_Linux ~/windows_share