fix synology acl
This commit is contained in:
+20
-4
@@ -60,12 +60,28 @@ if ENV['RAILS_ENV'] == 'production'
|
|||||||
ENV['DATABASE_URL'] = ENV['DATABASE_URL'].to_s.empty? ? database_url : ENV.fetch('DATABASE_URL', nil)
|
ENV['DATABASE_URL'] = ENV['DATABASE_URL'].to_s.empty? ? database_url : ENV.fetch('DATABASE_URL', nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
unless Process.uid == 2000
|
unless Process.euid == 2000
|
||||||
begin
|
begin
|
||||||
Process::Sys.setgid(2000)
|
test_file = "#{ENV.fetch('WORKDIR', '.')}/test"
|
||||||
Process::Sys.setuid(2000)
|
|
||||||
|
orig_euid = Process.euid
|
||||||
|
orig_egid = Process.egid
|
||||||
|
|
||||||
|
Process::Sys.setegid(2000)
|
||||||
|
Process::Sys.seteuid(2000)
|
||||||
|
|
||||||
|
File.open(test_file, 'w') { true }
|
||||||
rescue StandardError
|
rescue StandardError
|
||||||
puts 'Unable to run as 2000:2000'
|
Process::Sys.seteuid(orig_euid)
|
||||||
|
Process::Sys.setegid(orig_egid)
|
||||||
|
|
||||||
|
puts "Unable to run as 2000:2000, running as #{orig_euid}:#{orig_egid}"
|
||||||
|
ensure
|
||||||
|
begin
|
||||||
|
File.unlink(test_file)
|
||||||
|
rescue StandardError
|
||||||
|
nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user