我无法从入口点脚本将用户切换到非 root 用户。在 Dockerfile 中更改用户的 User 指令有效,但我无法使用 chmod 更改权限。为了解决这个问题,我创建了entrypoint.sh
脚本来更改文件夹权限,但是当我尝试使用su
命令切换用户时,它显然不起作用,容器仍然以 root 身份运行。
Dockerfile
FROM php:7.2-fpm
# Installing dependencies
RUN apt-get update && apt-get install -y \
build-essential \
mysql-client \
libpng-dev \
libjpeg62-turbo-dev \
libfreetype6-dev \
locales \
zip \
jpegoptim optipng pngquant gifsicle \
vim \
unzip \
git \
curl
# Installing composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ENV USER_ID=1000
ENV GROUP_ID=1000
ENV USER_NAME=www
ENV GROUP_NAME=www
RUN groupadd -g $GROUP_ID $GROUP_NAME …
Run Code Online (Sandbox Code Playgroud) switch-user docker dockerfile docker-compose docker-entrypoint
我的任务是创建一个新的Windows本地用户,登录并使用它,然后执行一些操作。创建新用户不是问题,但我不知道如何将当前用户切换为新用户。
我所做的是一段脚本,该脚本使用新用户启动新的powershell窗口:
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($config_name, $secpasswd)
Start-Process powershell.exe -Credential $mycreds -NoNewWindow
Run Code Online (Sandbox Code Playgroud)
是否可以在此新窗口中开始执行脚本的其余部分??
使用案例:我以" user1 " 身份登录并启动Safari,然后点击右上角的" user1 "并将用户切换为" user2 ".现在,我正在尝试检测Safari是否正在运行" user1 ",但我无法使用标准调用.我使用OS X 10.8 Mountain Lion来开发和运行我的代码.
我使用了以下但是徒劳无功:
[[NSWorkspace sharedWorkspace] runningApplications]
- 列表中没有SafariGetNextProcess()
- Safari没有出现GetProcessForPID()
- 我收到错误"没有这样的过程"但是当我ps -aef | grep Safari
从终端做一个时,我可以看到Safari.(这不仅适用于Safari,也适用于其他应用程序.)
有人可以请帮助.非常感谢你.
macos objective-c switch-user nsworkspace nsrunningapplication
我在我的应用程序中有一个基本的表单登录身份验证,我使用AuthenticationHandlerInterface设置了一个处理程序,我在onAuthenticationSuccess()方法中设置会话变量.
问题是,当我切换到另一个用户(使用ROLE_ALLOWED_TO_SWITCH)时,我的处理程序不再被调用,而我之前设置的会话变量在切换之前仍然是用户的变量.
示例:
(我知道myVar = X-> someAttribute不是一个很好的例子,因为我已经可以从安全令牌对象访问它,但它是为了简化问题)
谢谢
编辑:security.yml的摘录
firewalls:
main:
pattern: ^/
anonymous: ~
switch_user: { role: ROLE_ADMIN, parameter: _switch }
form_login:
provider: sso
success_handler: authentication_handler
login_path: /login
check_path: /login_check
logout:
path: /logout
target: /home
Run Code Online (Sandbox Code Playgroud) switch-user ×4
docker ×1
dockerfile ×1
handler ×1
macos ×1
nsworkspace ×1
objective-c ×1
powershell ×1
symfony ×1
windows ×1