外部 ntfs HDD 的权限问题,gitlab-ctl 重新配置更改权限:"Operation not permitted"
Permission issues with external ntfs HDD, gitlab-ctl reconfigure changing permissions: "Operation not permitted"
我在树莓派 3 B 型上使用 gitlab。根据一些 信息 关于我的 设置 (sudo gitlab-rake gitlab:env:info
):
System information
System: Raspbian 8.0
Current User: git
Using RVM: no
Ruby Version: 2.3.6p384
Gem Version: 2.6.13
Bundler Version:1.13.7
Rake Version: 12.3.0
Redis Version: 3.2.11
Git Version: 2.14.3
Sidekiq Version:5.0.5
Go Version: go1.3.3 linux/arm
GitLab information
Version: 10.6.0-rc3
Revision: 52fa89e
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
URL: http://gitlab.example.com
HTTP Clone URL: http://gitlab.example.com/some-group/some-project.git
SSH Clone URL: git@gitlab.example.com:some-group/some-project.git
Using LDAP: no
Using Omniauth: no
GitLab Shell
Version: 6.0.3
Repository storage paths:
- default: /mnt/SeagateExpansion/GitLab/repositories
Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git
gitlab 更新到版本 10.6.0 后我需要再次更改 url 但是当我在 /etc/gitlab/gitlab.rb
和 运行 sudo nano gitlab-ctl reconfigure
中进行必要的更改时我收到以下[=53=]错误消息:
========================================================================
Error executing action `run` on resource 'ruby_block[directory resource:
/mnt/SeagateExpansion/GitLab]'
========================================================================
和
============================================================================
Error executing action `create` on resource
'storage_directory[/mnt/SeagateExpansion/GitLab]'
============================================================================
结果消息说:
There was an error running gitlab-ctl reconfigure:
storage_directory[/mnt/SeagateExpansion/GitLab] (gitlab::gitlab-rails line 42) had an error: Mixlib::ShellOut::ShellCommandFailed: ruby_block[directory resource: /mnt/SeagateExpansion/GitLab] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/resources/storage_directory.rb line 33) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of chmod 00700 /mnt/SeagateExpansion/GitLab ----
STDOUT:
STDERR: chmod: changing permissions of ‘/mnt/SeagateExpansion/GitLab’: Operation not permitted
---- End output of chmod 00700 /mnt/SeagateExpansion/GitLab ----
Ran chmod 00700 /mnt/SeagateExpansion/GitLab returned 1
所以问题似乎是,在资源存储上执行运行和create命令( GitLab 外部硬盘上的文件夹 [HDD = SeagateExpansion]) 期望权限为 700,对吗?
根据这个错误,我试图改变的权限
外部 HDD 文件夹 /mnt/SeagateExpansion/GitLab
查看 ls -l
输出:
drwxrwxrwx 1 root GitLabUser 0 Jan 4 17:55 GitLab
在 this post 的帮助下,我尝试使用以下命令更改权限:
sudo find /mnt/SeagateExpansion/GitLab -type d -exec chmod 700 {} \;
获得所需的权限 700。但更改不会生效。我还尝试了 chmod -R 700 /mnt/SeagateExpansion/GitLab
并以 root 身份执行命令,但更改没有生效。即使在重新启动 raspberry pi 之后。我做错了什么?
我也尝试将 /etc/fstab
中硬盘的 选项 settings/flag 更改为 user
但这对以太没有帮助。
感谢每一个提示和回答:)。
此致,
布雷乔
我终于想通了。解决方法是更改 /etc/fstab
中的挂载设置。因为如果您的选项设置错误(参见:https://en.wikipedia.org/wiki/Fstab),您将无法更改权限,因为它是一个 ntfs
文件系统。
所以我的旧fstab
条目是这样的:
UUID=FE820568820526AD /mnt/SeagateExpansion ntfs defaults,gid=GitLabUser 0 0
新条目是这样的:
UUID=FE820568820526AD /mnt/SeagateExpansion ntfs-3g permissions 0 0
请注意,您需要安装 ntfs-3g 才能在 fstab
中使用它。 permissions
选项仅随 ntfs-3g 提供。参见:https://www.tuxera.com/community/ntfs-3g-advanced/ownership-and-permissions/
修改后我再次执行:
sudo gitlab-ctl reconfigure
现在错误消失了,可以设置文件夹 /mnt/SeagateExpansion/GitLab
的权限 700。我还注意到GitLab
文件夹的所有者在重新配置后也更改为用户git
:
drwx------ 1 git root 0 Jan 4 17:55 GitLab
那是因为我不再需要选项 gid=GitLabUser
。
现在一切都恢复正常了:)。
我在树莓派 3 B 型上使用 gitlab。根据一些 信息 关于我的 设置 (sudo gitlab-rake gitlab:env:info
):
System information
System: Raspbian 8.0
Current User: git
Using RVM: no
Ruby Version: 2.3.6p384
Gem Version: 2.6.13
Bundler Version:1.13.7
Rake Version: 12.3.0
Redis Version: 3.2.11
Git Version: 2.14.3
Sidekiq Version:5.0.5
Go Version: go1.3.3 linux/arm
GitLab information
Version: 10.6.0-rc3
Revision: 52fa89e
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
URL: http://gitlab.example.com
HTTP Clone URL: http://gitlab.example.com/some-group/some-project.git
SSH Clone URL: git@gitlab.example.com:some-group/some-project.git
Using LDAP: no
Using Omniauth: no
GitLab Shell
Version: 6.0.3
Repository storage paths:
- default: /mnt/SeagateExpansion/GitLab/repositories
Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git
gitlab 更新到版本 10.6.0 后我需要再次更改 url 但是当我在 /etc/gitlab/gitlab.rb
和 运行 sudo nano gitlab-ctl reconfigure
中进行必要的更改时我收到以下[=53=]错误消息:
========================================================================
Error executing action `run` on resource 'ruby_block[directory resource:
/mnt/SeagateExpansion/GitLab]'
========================================================================
和
============================================================================
Error executing action `create` on resource
'storage_directory[/mnt/SeagateExpansion/GitLab]'
============================================================================
结果消息说:
There was an error running gitlab-ctl reconfigure:
storage_directory[/mnt/SeagateExpansion/GitLab] (gitlab::gitlab-rails line 42) had an error: Mixlib::ShellOut::ShellCommandFailed: ruby_block[directory resource: /mnt/SeagateExpansion/GitLab] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/resources/storage_directory.rb line 33) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of chmod 00700 /mnt/SeagateExpansion/GitLab ----
STDOUT:
STDERR: chmod: changing permissions of ‘/mnt/SeagateExpansion/GitLab’: Operation not permitted
---- End output of chmod 00700 /mnt/SeagateExpansion/GitLab ----
Ran chmod 00700 /mnt/SeagateExpansion/GitLab returned 1
所以问题似乎是,在资源存储上执行运行和create命令( GitLab 外部硬盘上的文件夹 [HDD = SeagateExpansion]) 期望权限为 700,对吗?
根据这个错误,我试图改变的权限
外部 HDD 文件夹 /mnt/SeagateExpansion/GitLab
查看 ls -l
输出:
drwxrwxrwx 1 root GitLabUser 0 Jan 4 17:55 GitLab
在 this post 的帮助下,我尝试使用以下命令更改权限:
sudo find /mnt/SeagateExpansion/GitLab -type d -exec chmod 700 {} \;
获得所需的权限 700。但更改不会生效。我还尝试了 chmod -R 700 /mnt/SeagateExpansion/GitLab
并以 root 身份执行命令,但更改没有生效。即使在重新启动 raspberry pi 之后。我做错了什么?
我也尝试将 /etc/fstab
中硬盘的 选项 settings/flag 更改为 user
但这对以太没有帮助。
感谢每一个提示和回答:)。
此致,
布雷乔
我终于想通了。解决方法是更改 /etc/fstab
中的挂载设置。因为如果您的选项设置错误(参见:https://en.wikipedia.org/wiki/Fstab),您将无法更改权限,因为它是一个 ntfs
文件系统。
所以我的旧fstab
条目是这样的:
UUID=FE820568820526AD /mnt/SeagateExpansion ntfs defaults,gid=GitLabUser 0 0
新条目是这样的:
UUID=FE820568820526AD /mnt/SeagateExpansion ntfs-3g permissions 0 0
请注意,您需要安装 ntfs-3g 才能在 fstab
中使用它。 permissions
选项仅随 ntfs-3g 提供。参见:https://www.tuxera.com/community/ntfs-3g-advanced/ownership-and-permissions/
修改后我再次执行:
sudo gitlab-ctl reconfigure
现在错误消失了,可以设置文件夹 /mnt/SeagateExpansion/GitLab
的权限 700。我还注意到GitLab
文件夹的所有者在重新配置后也更改为用户git
:
drwx------ 1 git root 0 Jan 4 17:55 GitLab
那是因为我不再需要选项 gid=GitLabUser
。
现在一切都恢复正常了:)。