@Dirk@lemmy.ml
@Dirk@lemmy.ml avatar

Dirk

@Dirk@lemmy.ml

Somewhere between Linux woes, gaming, open source, 3D printing, recreational coding, and occasional ranting.

🔗 Me, but elsewhere

🇬🇧 / 🇩🇪

This profile is from a federated server and may be incomplete. Browse more on the original instance.

What's the best way to have a .bashrc that I can use throughout systems?

So, I just found out about a programme called SynthShell which kind of does the work for you and gives you a nice looking shell, the thing is that this also creates some config files and other stuff in my system, instead of just one .bashrc file to edit. What would be the best way to learn to have a nice looking bash where I can...

Dirk, (edited )
@Dirk@lemmy.ml avatar

I personally use yadm

I just use some code and Git.


<span style="color:#323232;">if [ ! -z "$PS1" ]; then
</span><span style="color:#323232;">    repo="${XDG_CONFIG_HOME}/dotfiles/"
</span><span style="color:#323232;">    br='origin/main'
</span><span style="color:#323232;">
</span><span style="color:#323232;">    title="e[1me[31mn ░▒▓e[7m    %s    e[27m▓▒░e[0mnn%snn"
</span><span style="color:#323232;">    status="$(git --git-dir="$repo" --work-tree="$HOME" status -s)"
</span><span style="color:#323232;">    diff=$(git --git-dir="$repo" --work-tree="$HOME" diff --stat --cached $br)
</span><span style="color:#323232;">
</span><span style="color:#323232;">    [ -n "$status" ] && printf "$title" "Uncommited changes!" "$status"
</span><span style="color:#323232;">    [ -n "$diff" ] && printf "$title" "Not yet pushed commits!" "$diff"
</span><span style="color:#323232;">
</span><span style="color:#323232;">    unset title status diff br
</span><span style="color:#323232;">    alias dotfiles="/usr/bin/git --git-dir=$repo --work-tree=$HOME"
</span><span style="color:#323232;">fi
</span>

The code runs when it’s an interactive shell with a PS1 prompt and just checks if any of the tracked files have changed or if there are commits that are not pushed. By configuration I ignore all untracked files. If something has changed or wasn’t pushed it always prints an annoying message.

Whenever I want to do something I use dotfiles … instead of git …, everything else works the same.

Is it actually dangerous to run Firefox as root?

I have a few Linux servers at home that I regularly remote into in order to manage, usually logged into KDE Plasma as root. Usually they just have several command line windows and a file manager open (I personally just find it more convenient to use the command line from a remote desktop instead of directly SSH-ing into the...

Dirk,
@Dirk@lemmy.ml avatar

This. Thread should have officially ended here.

Dirk,
@Dirk@lemmy.ml avatar

You don’t need to create the user first. Here’s the simplest I can come up with:


<span style="color:#323232;">FROM alpine:latest
</span><span style="color:#323232;">COPY myscript.sh /app/myscript.sh
</span><span style="color:#323232;">USER 10000:10001
</span><span style="color:#323232;">CMD ["sh", "/app/myscript.sh"]
</span>

This simply runs /app/myscript.sh with UID 10000 and GID 10001.

Dirk,
@Dirk@lemmy.ml avatar

Yep! The names are basically just a convenient way for referencing a user or group ID.

Under normal circumstances you should let the system decide what IDs to use, but in the confined environment of a docker container you can do pretty much what you want.

If you really, really, really want to create a user and group just set the IDs manually:


<span style="color:#323232;">FROM alpine:latest
</span><span style="color:#323232;">COPY myscript.sh /app/myscript.sh
</span><span style="color:#323232;">RUN addgroup -g 10001 mycoolgroup && adduser -D -u 10000 -G mycoolgroup mycooluser
</span><span style="color:#323232;">USER mycooluser:mycoolgroup
</span><span style="color:#323232;">CMD ["sh", "/app/myscript.sh"]
</span>

Just make sure to stay at or above 10000 so you won’t accidentally re-use IDs that are already defined on the host.

Dirk,
@Dirk@lemmy.ml avatar

This is really dependent on […]

… basically anything. Yes. You will always find yourself in problems where the best practice isn’t the best solution for.

In your described use case an option would be having the application inside the container running with 10000:10001 but writing the data into another directory that is configured to use 1000:1001 (or whatever the user is you want to access the data with from your host) and just mount the volume there. This takes a bit more configuration effort than just running the application with 1000:1001 … but still :)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #